Changeset 1066 for branches/bioformats-omero
- Timestamp:
- 11/06/06 13:06:59 (2 years ago)
- Location:
- branches/bioformats-omero/src/ome/formats
- Files:
-
- 11 modified
-
OMEROMetadataStore.java (modified) (7 diffs)
-
importer/About.java (modified) (2 diffs)
-
importer/FileQueueChooser.java (modified) (5 diffs)
-
importer/FileQueueHandler.java (modified) (13 diffs)
-
importer/FileQueueTable.java (modified) (12 diffs)
-
importer/ImportContainer.java (modified) (1 diff)
-
importer/ImportDialog.java (modified) (8 diffs)
-
importer/ImportFixture.java (modified) (2 diffs)
-
importer/ImportHandler.java (modified) (5 diffs)
-
importer/ImportLibrary.java (modified) (2 diffs)
-
importer/Main.java (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/bioformats-omero/src/ome/formats/OMEROMetadataStore.java
r1053 r1066 30 30 package ome.formats; 31 31 32 import java.io.File; 33 import java.io.FileInputStream; 34 import java.io.FileNotFoundException; 35 import java.nio.ByteBuffer; 32 36 import java.util.ArrayList; 33 37 import java.util.List; … … 38 42 import ome.api.IQuery; 39 43 import ome.api.IUpdate; 44 import ome.api.RawFileStore; 40 45 import ome.api.RawPixelsStore; 41 46 import ome.model.IObject; … … 47 52 import ome.model.core.Image; 48 53 import ome.model.core.LogicalChannel; 54 import ome.model.core.OriginalFile; 49 55 import ome.model.core.Pixels; 50 56 import ome.model.core.PixelsDimensions; … … 52 58 import ome.model.enums.AcquisitionMode; 53 59 import ome.model.enums.DimensionOrder; 60 import ome.model.enums.Format; 54 61 import ome.model.enums.PhotometricInterpretation; 55 62 import ome.model.enums.PixelsType; … … 96 103 private Experimenter exp; 97 104 105 private RawFileStore rawFileStore; 106 98 107 /** 99 108 * Creates a new instance. … … 129 138 iUpdate = sf.getUpdateService(); 130 139 pservice = sf.createRawPixelsStore(); 140 rawFileStore = sf.createRawFileStore(); 131 141 132 142 exp = iQuery.findByString(Experimenter.class, "omeName", username); … … 635 645 return pixels.getId(); 636 646 } 647 648 649 public void setOriginalFiles(File[] files) 650 { 651 for (File file: files) 652 { 653 Format f = iQuery.findByString(Format.class, "value", "DV"); 654 OriginalFile oFile = new OriginalFile(); 655 oFile.setName(file.getName()); 656 oFile.setPath(file.getAbsolutePath()); 657 oFile.setSize(new Integer((int) file.length())); //FIXME this needs to be long 658 oFile.setSha1("pending"); 659 oFile.setFormat(f); 660 pixels.linkOriginalFile(oFile); 661 } 662 } 663 664 public void writeFilesToFileStore(File[] files, long pixelsId) 665 { 666 try 667 { 668 for (File file : files) 669 { 670 System.err.println(file + " " + pixelsId); 671 Parameters p = new Parameters(); 672 p.addId(pixelsId); 673 p.addString("path", file.getAbsolutePath()); 674 OriginalFile o = iQuery.findByQuery( 675 "select ofile from OriginalFile as ofile left join " + 676 "ofile.pixelsFileMaps as pfm left join pfm.child as child " + 677 "where child.id = :id and ofile.path =:path", p); 678 679 if (o == null) throw 680 new FileNotFoundException("Unable to look up originalFile"); 681 682 rawFileStore.setFileId(o.getId()); 683 684 byte[] buf = new byte[262144]; 685 FileInputStream stream = new FileInputStream(file); 686 687 long time = System.currentTimeMillis(); 688 long pos = 0; 689 int rlen; 690 while((rlen = stream.read(buf)) > 0) 691 { 692 rawFileStore.write(buf, pos, rlen); 693 pos += rlen; 694 ByteBuffer nioBuffer = ByteBuffer.wrap(buf); 695 nioBuffer.limit(rlen); 696 } 697 698 System.err.println(System.currentTimeMillis() - time); 699 } 700 701 } catch (Exception e) 702 { 703 e.printStackTrace(); 704 } 705 706 } 637 707 } -
branches/bioformats-omero/src/ome/formats/importer/About.java
r1043 r1066 35 35 36 36 import java.awt.Component; 37 import java.awt.Toolkit;38 37 import java.io.BufferedReader; 39 38 import java.io.IOException; 40 39 import java.io.InputStream; 41 40 import java.io.InputStreamReader; 42 import java.net.URL;43 41 44 import javax.swing.JFrame;45 42 import javax.swing.JOptionPane; 46 43 … … 56 53 57 54 private static String msg; 58 59 private static JFrame frame;60 55 61 56 public static void show(Component c) -
branches/bioformats-omero/src/ome/formats/importer/FileQueueChooser.java
r1020 r1066 3 3 import java.awt.Component; 4 4 import java.awt.Container; 5 import java.awt.FileDialog;6 5 import java.awt.event.InputEvent; 7 6 import java.awt.event.MouseEvent; 8 7 import java.awt.event.MouseListener; 9 import java.awt.event.MouseMotionListener;10 8 import java.io.File; 11 import java.util.ArrayList;12 9 import java.util.Stack; 13 10 import java.util.Vector; … … 41 38 private Component fileList = null; 42 39 43 private Boolean inSetSelect = true;44 45 40 ImageReader reader = new ImageReader(); 46 41 … … 66 61 67 62 68 FileFilter[] ff = new FileFilter[readerFFSize + 5];63 FileFilter[] ff = new FileFilter[readerFFSize + 6]; 69 64 System.arraycopy(ComboFileFilter.sortFilters( 70 65 reader.getFileFilters()), 0, ff, 0, readerFFSize); … … 74 69 ff[readerFFSize + 3] = new D3DNewFileFilter(); 75 70 ff[readerFFSize + 4] = new D3DOldFileFilter(); 76 77 78 79 80 71 ff[readerFFSize + 5] = new D3DNPrjFileFilter(); 72 81 73 //ff = ComboFileFilter.sortFilters(ff); 82 74 FileFilter combo = null; … … 233 225 } 234 226 227 class D3DNPrjFileFilter extends javax.swing.filechooser.FileFilter 228 { 229 @Override 230 public boolean accept(File f) 231 { 232 return f.isDirectory() || f.getName().toLowerCase().endsWith("_prj.dv"); 233 } 234 235 @Override 236 public String getDescription() 237 { 238 return "Deltavision Files - Projected (*_prj.dv)"; 239 } 240 } 241 235 242 // ----- Main class used for testing ------ 236 243 -
branches/bioformats-omero/src/ome/formats/importer/FileQueueHandler.java
r1053 r1066 39 39 import java.util.prefs.Preferences; 40 40 41 import javax.swing.JCheckBox; 42 import javax.swing.JFileChooser; 41 43 import javax.swing.JFrame; 42 44 import javax.swing.JOptionPane; … … 46 48 47 49 import loci.formats.ChannelSeparator; 48 import loci.formats.FormatException;49 50 import loci.formats.ImageReader; 50 51 … … 53 54 54 55 56 @SuppressWarnings("serial") 55 57 public class FileQueueHandler 56 58 extends JPanel … … 63 65 private String savedDirectory = userPrefs.get("savedDirectory", ""); 64 66 67 @SuppressWarnings("unused") 65 68 private ImportHandler importHandler; 66 69 private OMEROMetadataStore store; … … 111 114 112 115 //If the directory changed, don't show an image. 113 if (action.equals( fileChooser.APPROVE_SELECTION)) {116 if (action.equals(JFileChooser.APPROVE_SELECTION)) { 114 117 try { 115 118 file = fileChooser.getSelectedFile(); … … 132 135 addFileToQueue(file, dialog.dataset, 133 136 dialog.dataset.getName(), dialog.project.getName(), 134 dialog.useFullPath, dialog.numOfDirectories); 137 dialog.useFullPath, dialog.numOfDirectories, 138 dialog.archiveImage.isSelected()); 135 139 } else { 136 140 JOptionPane.showMessageDialog(viewer, 137 141 "Due to an error the application is unable to \n" + 138 "retrieve an OMEROMetadataStore and can't continue"); 142 "retrieve an OMEROMetadataStore and cannot continue." + 143 "The most likely cause for this error is that you" + 144 "are not logged in. Please try to login again."); 139 145 } 140 146 } catch (Exception ex) { … … 168 174 } 169 175 176 177 if (fileSelected != true) 178 { 179 JOptionPane.showMessageDialog(viewer, 180 "You must select at least one importable file to\n" + 181 "add to the import queue. Choose an image in the\n" + 182 "left-hand panel first before continuing."); 183 return; 184 } 185 170 186 if (fileSelected == true && store != null) 171 187 { … … 181 197 dialog.project.getName(), 182 198 dialog.useFullPath, 183 dialog.numOfDirectories); 199 dialog.numOfDirectories, 200 dialog.archiveImage.isSelected()); 184 201 } 185 202 } else { 186 203 JOptionPane.showMessageDialog(viewer, 187 204 "Due to an error the application is unable to \n" + 188 "retrieve an OMEROMetadataStore and can't continue"); 205 "retrieve an OMEROMetadataStore and cannot continue." + 206 "The most likely cause for this error is that you" + 207 "are not logged in. Please try to login again."); 189 208 } 190 209 } catch (Exception ex) { … … 196 215 { 197 216 try { 198 if (qTable.importBtn.isEnabled()) 199 { 200 rows = qTable.queue.getSelectedRows(); 201 202 while (rows.length > 0) 217 218 rows = qTable.queue.getSelectedRows(); 219 220 if (rows.length == 0) 221 { 222 JOptionPane.showMessageDialog(viewer, 223 "You must select at least one file in the queue to\n" + 224 "remove. Choose an image in the right-hand panel \n" + 225 "first before removing."); 226 return; 227 } 228 229 while (rows.length > 0) 230 { 231 if (qTable.queue.getValueAt(rows[0], 2) == "added") 203 232 { 204 if (qTable.queue.getValueAt(rows[0], 2) == "added") 205 { 206 removeFileFromQueue(rows[0]); 207 rows = qTable.queue.getSelectedRows(); 208 } 209 } 210 } 233 removeFileFromQueue(rows[0]); 234 rows = qTable.queue.getSelectedRows(); 235 } 236 } 211 237 } catch (Exception ex) { 212 238 ex.printStackTrace(); … … 244 270 } 245 271 } 246 if (prop.equals( fileChooser.DIRECTORY_CHANGED_PROPERTY))272 if (prop.equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY)) 247 273 { 248 274 savedDirectory = fileChooser.getCurrentDirectory().getAbsolutePath(); … … 252 278 253 279 280 @SuppressWarnings("unchecked") 254 281 private void addFileToQueue(File file, Dataset dataset, String dName, 255 String project, Boolean useFullPath, int numOfDirectories) 282 String project, Boolean useFullPath, 283 int numOfDirectories, boolean archiveImage) 256 284 { 257 285 Vector row = new Vector(); … … 264 292 row.add(dataset); 265 293 row.add(file); 294 row.add(archiveImage); 266 295 qTable.table.addRow(row); 267 296 if (qTable.table.getRowCount() == 1) … … 272 301 { 273 302 if (useFullPath == true) return file.toString(); 274 else if (numOfDirectories == 0) return file.getName(); 275 else return file.getName(); 276 } 277 278 303 else if (numOfDirectories == 0) return file.getName(); 304 else 305 { 306 String[] directories = splitDirectories(file); 307 if (numOfDirectories > directories.length - 1) 308 numOfDirectories = directories.length - 1; 309 310 int start = directories.length - numOfDirectories - 1; 311 312 String fileName = ""; 313 314 for (int i = start; i < directories.length - 1; i++) 315 { 316 if (directories[i].length() != 0) 317 fileName = fileName + File.separator + directories[i]; 318 } 319 320 fileName = fileName + File.separator + file.getName(); 321 return fileName; 322 } 323 } 324 325 // Split the directories by file seperator character ("/" or "\") 279 326 private String[] splitDirectories(File file) 280 327 { 281 String[] fields = file.get Path().split(File.pathSeparator);328 String[] fields = file.getAbsolutePath().split(File.separator); 282 329 283 330 return fields; -
branches/bioformats-omero/src/ome/formats/importer/FileQueueTable.java
r1053 r1066 140 140 .addListSelectionListener(listener); 141 141 142 // Hide 3 and 4th columns142 // Hide 3rd to 5th columns 143 143 TableColumnModel tcm = queue.getColumnModel(); 144 144 TableColumn datasetColumn = tcm.getColumn(3); … … 146 146 TableColumn pathColumn = tcm.getColumn(3); 147 147 tcm.removeColumn(pathColumn); 148 TableColumn archiveColumn = tcm.getColumn(3); 149 tcm.removeColumn(archiveColumn); 148 150 149 151 … … 178 180 } 179 181 180 public void set Progress(int step)182 public void setImportProgress(int step) 181 183 { 182 184 String text = step + "/" + maxPlanes; … … 184 186 } 185 187 188 public void setProgressPrepping(int row) 189 { 190 table.setValueAt("prepping", row, 2); 191 } 192 186 193 public void setProgressDone(int row) 187 194 { 188 195 table.setValueAt("done", row, 2); 196 } 197 198 public void setProgressArchiving(int row) 199 { 200 table.setValueAt("archiving", row, 2); 189 201 } 190 202 … … 222 234 { 223 235 try { 236 boolean archive = (Boolean) table.getValueAt(i, 5); 224 237 File file = new File(table.getValueAt(i, 4).toString()); 225 238 Dataset dataset = (Dataset) table.getValueAt(i, 3); 226 239 String imageName = table.getValueAt(i, 0).toString(); 227 fads[i] = new ImportContainer(file, dataset, imageName ); }240 fads[i] = new ImportContainer(file, dataset, imageName, archive); } 228 241 catch (ArrayIndexOutOfBoundsException e) { 229 242 e.printStackTrace(); … … 233 246 return fads; 234 247 } 235 248 236 249 public void actionPerformed(ActionEvent e) 237 250 { … … 258 271 259 272 private static final long serialVersionUID = 1L; 260 private String[] columnNames = {"Files in Queue", "Project/Dataset", "Status", "DatasetNum", "Path" };273 private String[] columnNames = {"Files in Queue", "Project/Dataset", "Status", "DatasetNum", "Path", "Archive"}; 261 274 262 275 public void tableChanged(TableModelEvent arg0) { } … … 311 324 } 312 325 326 @SuppressWarnings("serial") 313 327 class LeftDotRenderer 314 328 extends DefaultTableCellRenderer … … 327 341 String cellText = getText(); 328 342 FontMetrics fm = getFontMetrics( getFont() ); 343 // Set tool tip if desired 329 344 330 345 if (fm.stringWidth(cellText) > availableWidth) … … 345 360 setText( dots + cellText.substring(nChars + 1) ); 346 361 } 347 362 348 363 setFont(UIManager.getFont("TableCell.font")); 349 364 350 365 return this; 351 366 } … … 367 382 setFont(UIManager.getFont("TableCell.font")); 368 383 setHorizontalAlignment(DefaultTableCellRenderer.CENTER); 384 // Set tool tip if desired 385 setToolTipText((String)value); 369 386 370 387 // Since the renderer is a component, return itself … … 405 422 private void dselectRow(int first, int last) 406 423 { 407 for (int i = first; i < =last; i++ )424 for (int i = first; i < last; i++ ) 408 425 { 409 426 try 410 427 { 428 //System.err.println("first: " + first + 429 // " last: " + last + " i: " + i); 411 430 if (!table.getValueAt(i, 2).equals("added") 412 431 && table.getSelectionModel().isSelectedIndex(i)) -
branches/bioformats-omero/src/ome/formats/importer/ImportContainer.java
r1053 r1066 11 11 public Dataset dataset; 12 12 public String imageName; 13 public boolean archive; 13 14 14 ImportContainer(File file, Dataset dataset, String imageName )15 ImportContainer(File file, Dataset dataset, String imageName, boolean archive2) 15 16 { 16 17 this.file = file; 17 18 this.dataset = dataset; 18 19 this.imageName = imageName; 20 this.archive = archive2; 19 21 } 20 22 } -
branches/bioformats-omero/src/ome/formats/importer/ImportDialog.java
r1053 r1066 47 47 import javax.swing.ButtonGroup; 48 48 import javax.swing.JButton; 49 import javax.swing.JCheckBox; 49 50 import javax.swing.JComboBox; 50 51 import javax.swing.JDialog; … … 84 85 public int numOfDirectories; 85 86 87 public JCheckBox archiveImage; 88 86 89 JButton cancelBtn; 87 90 JButton importBtn; … … 119 122 setModal(modal); 120 123 setResizable(false); 121 setSize(new Dimension(300, 280));124 setSize(new Dimension(300, 300)); 122 125 setLocationRelativeTo(owner); 123 126 … … 140 143 JPanel namedPanel = addNamedPanel(this, " File Naming ", c, 0, 4, 1.0f); 141 144 142 fullPathButton = addRadioButton("Use the full path name", c);143 partPathButton = addRadioButton("Use the file name", c);145 fullPathButton = addRadioButton("Use the full path + file name", c); 146 partPathButton = addRadioButton("Use just the file name and include", c); 144 147 145 148 ButtonGroup group = new ButtonGroup(); 146 149 group.add(fullPathButton); 147 150 group.add(partPathButton); 148 151 149 152 group.setSelected(fullPathButton.getModel(), true); 150 153 … … 152 155 namedPanel.add(partPathButton, c); 153 156 154 JPanel plainPanel = addPlainPanel(namedPanel, c);157 JPanel plainPanel = addPlainPanel(namedPanel, c); 155 158 numOfDirectoriesField = addEntryField(plainPanel,
