• Views
  • Iteration Report
  • My Iteration Report
  •  
OMERO.server
  • Login
  • Help/Guide
  • About Trac
  • Preferences
  • Wiki
  • Timeline
  • Roadmap
  • Browse Source
  • View Tickets
  • Search

Context Navigation

  • ← Previous Change
  • Next Change →

Changeset 1007 for branches/bioformats-omero

Show
Ignore:
Timestamp:
10/03/06 11:32:29 (2 years ago)
Author:
TheBrain
Message:

New import queue completed.

Location:
branches/bioformats-omero/src/ome/formats/testclient
Files:
9 added
4 modified

  • FileQueueHandler.java (modified) (5 diffs)
  • FileQueueTable.java (modified) (15 diffs)
  • FindAccessory.java (added)
  • ImportDialog.java (modified) (2 diffs)
  • ImportHandler.java (modified) (11 diffs)
  • gfx/2leftarrow.png (added)
  • gfx/2rightarrow.png (added)
  • gfx/desktop.png (added)
  • gfx/drive.png (added)
  • gfx/home.png (added)
  • gfx/import_done_16.png (added)
  • gfx/import_icon_16.png (added)
  • readers.txt (added)

Legend:

Unmodified
Added
Removed
  • branches/bioformats-omero/src/ome/formats/testclient/FileQueueHandler.java

    r997 r1007  
    130130            if (dialog.cancelled == true || dialog.dataset == null) return; 
    131131             
    132             addFileToQueue(file, dialog.dataset); 
     132            addFileToQueue(file, dialog.dataset, 
     133                    dialog.dataset.getName(), dialog.project.getName()); 
    133134        } 
    134135    } 
    … …  
    140141        { 
    141142            files = fileChooser.getSelectedFiles(); 
    142              
    143143             
    144144            if (store == null) 
    … …  
    155155            for (File f : files) 
    156156            { 
    157                 addFileToQueue(f, dialog.dataset); 
     157                addFileToQueue(f, dialog.dataset,  
     158                        dialog.dataset.getName(), dialog.project.getName()); 
    158159            } 
    159160        } 
    160161        if (prop.equals(Actions.REMOVE)) 
    161162        { 
    162             rows = qTable.queue.getSelectedRows(); 
    163              
    164             while (rows.length > 0) 
     163            if (qTable.importBtn.isEnabled()) 
    165164            { 
    166                 removeFileFromQueue(rows[0]); 
    167165                rows = qTable.queue.getSelectedRows(); 
     166                 
     167                while (rows.length > 0) 
     168                { 
     169                    if (qTable.queue.getValueAt(rows[0], 2) == "added") 
     170                    { 
     171                        removeFileFromQueue(rows[0]); 
     172                        rows = qTable.queue.getSelectedRows();                     
     173                    } 
     174                }                 
    168175            } 
    169         } 
     176 
     177        } 
     178         
    170179        if (prop.equals(Actions.IMPORT)) 
    171180        {    
    … …  
    176185                if (store == null) 
    177186                    store = viewer.loginHandler.getMetadataStore(); 
    178                 importHandler = new ImportHandler(viewer, store, reader, fads); 
     187                importHandler =  
     188                    new ImportHandler(viewer, qTable, store, reader, fads); 
     189 
    179190            } 
    180191        } 
    … …  
    187198     
    188199    
    189     private void addFileToQueue(File file, Dataset dataset) 
     200    private void addFileToQueue(File file, Dataset dataset, String dName, String project) 
    190201    { 
    191202        Vector row = new Vector(); 
    192203         
    193204        row.add(file); 
     205        row.add(dName + "/" + project); 
     206        row.add("added"); 
    194207        row.add(dataset); 
    195         row.add("pending"); 
    196208        qTable.table.addRow(row);  
    197         qTable.importBtn.setEnabled(true); 
     209        if (qTable.table.getRowCount() == 1) 
     210            qTable.importBtn.setEnabled(true); 
    198211    } 
    199212     
  • branches/bioformats-omero/src/ome/formats/testclient/FileQueueTable.java

    r994 r1007  
    1010import java.awt.event.ActionListener; 
    1111import java.io.File; 
     12import java.util.ArrayList; 
    1213 
    1314import javax.swing.BorderFactory; 
    … …  
    2425import javax.swing.border.CompoundBorder; 
    2526import javax.swing.border.EmptyBorder; 
     27import javax.swing.event.ListSelectionEvent; 
     28import javax.swing.event.ListSelectionListener; 
    2629import javax.swing.event.TableModelEvent; 
    2730import javax.swing.event.TableModelListener; 
    … …  
    4851    JButton           importBtn; 
    4952     
     53    private int row; 
     54    private int maxPlanes; 
     55     
    5056    FileQueueTable() { 
    5157 
    … …  
    6268         
    6369        // Width of the status columns 
    64         int statusWidth = 70; 
     70        int statusWidth = 100; 
    6571 
    6672// ----- GUI Layout Elements ----- 
    … …  
    119125        cModel.getColumn(1).setCellRenderer(new TextCellCenter()); 
    120126        cModel.getColumn(2).setCellRenderer(new TextCellCenter());             
    121  
    122127         
    123128        // Set the width of the status column 
    … …  
    126131        statusColumn.setMaxWidth(statusWidth); 
    127132        statusColumn.setMinWidth(statusWidth); 
     133               
     134 
     135        SelectionListener listener = new SelectionListener(queue); 
     136        queue.getSelectionModel().addListSelectionListener(listener); 
     137        queue.getColumnModel().getSelectionModel() 
     138            .addListSelectionListener(listener); 
     139         
     140        TableColumnModel tcm = queue.getColumnModel(); 
     141        TableColumn column = tcm.getColumn(3); 
     142        tcm.removeColumn(column); 
    128143         
    129144        // Add the table to the scollpane 
    … …  
    145160    } 
    146161     
     162    public void setProgressInfo(int row, int maxPlanes) 
     163    { 
     164        this.row = row; 
     165        this.maxPlanes = maxPlanes; 
     166    } 
     167  
     168    public void setProgressPending(int row) 
     169    { 
     170        if (table.getValueAt(row, 2).equals("added")) 
     171            table.setValueAt("pending", row, 2);     
     172    } 
     173     
     174    public void setProgress(int step) 
     175    { 
     176        String text = step + "/" + maxPlanes; 
     177        table.setValueAt(text, row, 2);    
     178    } 
     179     
     180    public void setProgressDone(int row) 
     181    { 
     182        table.setValueAt("done", row, 2);  
     183    } 
     184     
     185    public int getMaximum() 
     186    { 
     187        return maxPlanes; 
     188    } 
     189         
    147190    static JButton addButton(String name, String image, String tooltip) 
    148191    { 
    … …  
    173216        { 
    174217            File file = new File(table.getValueAt(i, 0).toString()); 
    175             Dataset dataset = (Dataset) table.getValueAt(i, 1); 
    176              
    177             fads[i] = new FileAndDatasetContainer(file, dataset); 
     218            try { 
     219                Dataset dataset = (Dataset) table.getValueAt(i, 3); 
     220                fads[i] = new FileAndDatasetContainer(file, dataset);            } 
     221            catch (ArrayIndexOutOfBoundsException e) {} 
     222 
    178223        } 
    179224        return fads; 
    … …  
    193238        if (src == importBtn) 
    194239        { 
     240            queue.clearSelection(); 
    195241            firePropertyChange(Actions.IMPORT, false, true); 
    196242        } 
    197243    } 
    198      
    199     class QueueTableModel extends DefaultTableModel implements TableModelListener { 
     244 
     245    class QueueTableModel  
     246        extends DefaultTableModel  
     247        implements TableModelListener { 
    200248         
    201249        private static final long serialVersionUID = 1L; 
    202         private String[] columnNames = {"Files in Queue", "Project/Dataset", "Status"}; 
    203         private Object[][] files = null; 
     250        private String[] columnNames = {"Files in Queue", "Project/Dataset", "Status", "DatasetNum"}; 
    204251 
    205252        public void tableChanged(TableModelEvent arg0) { } 
    … …  
    211258        public boolean isCellEditable(int row, int col) { return false; } 
    212259         
    213         public void setValueAt(Object value, int row, int col) 
    214         { 
    215             files[row][col] = value; 
    216             fireTableCellUpdated(row,col); 
    217         } 
     260        public boolean rowSelectionAllowed() { return false; } 
    218261    } 
    219262  
    … …  
    242285            // Set tool tip if desired 
    243286            setToolTipText((String)value); 
     287             
     288            setEnabled(table == null || table.isEnabled()); 
     289                         
     290            super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
    244291     
    245292            // Since the renderer is a component, return itself 
    … …  
    254301    } 
    255302     
    256     class LeftDotRenderer extends DefaultTableCellRenderer 
     303    class LeftDotRenderer  
     304        extends DefaultTableCellRenderer 
    257305    { 
    258306        public Component getTableCellRendererComponent( 
    … …  
    295343     
    296344    public class TextCellCenter 
    297     extends DefaultTableCellRenderer  
     345        extends DefaultTableCellRenderer  
    298346    { 
    299347        // This method is called each time a column header 
    … …  
    309357            setFont(UIManager.getFont("TableCell.font")); 
    310358            setHorizontalAlignment(DefaultTableCellRenderer.CENTER); 
    311  
     359             
    312360            // Since the renderer is a component, return itself 
    313361            return this; 
    … …  
    315363    } 
    316364 
     365    public class SelectionListener  
     366        implements ListSelectionListener { 
     367        JTable table; 
     368     
     369        // It is necessary to keep the table since it is not possible 
     370        // to determine the table from the event's source 
     371        SelectionListener(JTable table) { 
     372            this.table = table; 
     373        } 
     374        public void valueChanged(ListSelectionEvent e) { 
     375            // If cell selection is enabled, both row and column change events are fired 
     376            if (e.getSource() == table.getSelectionModel() 
     377                  && table.getRowSelectionAllowed()) { 
     378                // Column selection changed 
     379                int first = e.getFirstIndex(); 
     380                int last = e.getLastIndex(); 
     381                dselectRow(first, last); 
     382            } else if (e.getSource() == table.getColumnModel().getSelectionModel() 
     383                   && table.getColumnSelectionAllowed() ){ 
     384                // Row selection changed 
     385                int first = e.getFirstIndex(); 
     386                int last = e.getLastIndex(); 
     387                dselectRow(first, last); 
     388            } 
     389     
     390            if (e.getValueIsAdjusting()) { 
     391                // The mouse button has not yet been released 
     392            } 
     393        } 
     394         
     395        private void dselectRow(int first, int last) 
     396        { 
     397            for (int i = first; i <= last; i++ ) 
     398            { 
     399                try 
     400                { 
     401                    if (!table.getValueAt(i, 2).equals("added")  
     402                            && table.getSelectionModel().isSelectedIndex(i)) 
     403                    { 
     404                        table.getSelectionModel().removeSelectionInterval(i, i); 
     405                        table.clearSelection(); 
     406                    }                     
     407                } catch (ArrayIndexOutOfBoundsException e) 
     408                { 
     409                     
     410                } 
     411            } 
     412        } 
     413    } 
     414         
    317415    public static void main (String[] args) { 
    318416 
  • branches/bioformats-omero/src/ome/formats/testclient/ImportDialog.java

    r993 r1007  
    7373 
    7474    public  Dataset dataset; 
     75    public  Project project; 
     76     
    7577    public  DatasetItem[] datasetItems = null; 
    7678    public  ProjectItem[] projectItems = null; 
    … …  
    329331            cancelled = false; 
    330332            dataset = ((DatasetItem) dbox.getSelectedItem()).getDataset(); 
     333            project = ((ProjectItem) pbox.getSelectedItem()).getProject(); 
    331334            userPrefs.putLong("savedProject",  
    332335                    ((ProjectItem) pbox.getSelectedItem()).getId()); 
  • branches/bioformats-omero/src/ome/formats/testclient/ImportHandler.java

    r997 r1007  
    3535import java.util.Date; 
    3636 
     37import javax.swing.JTable; 
    3738import javax.swing.ProgressMonitor; 
    3839 
    3940import loci.formats.IFormatReader; 
    4041import ome.formats.OMEROMetadataStore; 
     42import ome.formats.testclient.FileQueueTable.SelectionListener; 
    4143 
    4244import org.apache.commons.logging.Log; 
    … …  
    5759    private TestClient      viewer; 
    5860 
    59     private ProgressMonitor monitor; 
     61    //private ProgressMonitor monitor; 
     62     
     63    private FileQueueTable  qTable; 
    6064 
    6165    private static Log      log = LogFactory.getLog(ImportHandler.class); 
    … …  
    6367    private OMEROMetadataStore store; 
    6468 
    65     public ImportHandler(TestClient viewer, OMEROMetadataStore store, 
     69    public ImportHandler(TestClient viewer, FileQueueTable qTable, OMEROMetadataStore store, 
    6670            IFormatReader reader, FileAndDatasetContainer[] fads) 
    6771    { 
    … …  
    6973        this.library = new ImportLibrary(store, reader, fads); 
    7074        this.store = store; 
     75        this.qTable = qTable; 
    7176 
    7277        new Thread() 
    … …  
    9398        Date date = null; 
    9499 
    95         monitor = new ProgressMonitor(viewer, null, null, 0, 0); 
     100        //monitor = new ProgressMonitor(viewer, null, null, 0, 0); 
    96101 
    97102        // record initial timestamp and record total running time for the import 
    … …  
    107112         
    108113        FileAndDatasetContainer[] fads = library.getFilesAndDatasets(); 
    109         for (int i = 0; i < fads.length; i ++) 
    110         { 
    111             String filename = fads[i].file.getAbsolutePath(); 
    112             viewer.appendToOutputLn("> [" + i + "] Importing \"" + filename 
    113                     + "\""); 
    114              
    115             library.setDataset(fads[i].dataset); 
    116             importImage(fads[i].file, i, library.getFilesAndDatasets().length); 
    117              
    118             i++; 
     114        qTable.importBtn.setEnabled(false); 
     115 
     116        for(int i = 0; i < fads.length; i++) 
     117        { 
     118            qTable.setProgressPending(i); 
    119119        } 
    120  
     120         
     121        for (int i = 0; i < fads.length; i++) 
     122        { 
     123            if (qTable.table.getValueAt(i, 2).equals("pending")) 
     124            { 
     125                String filename = fads[i].file.getAbsolutePath(); 
     126                viewer.appendToOutputLn("> [" + i + "] Importing \"" + filename 
     127                        + "\""); 
     128                 
     129                library.setDataset(fads[i].dataset); 
     130                importImage(fads[i].file, i, library.getFilesAndDatasets().length);                 
     131            } 
     132        } 
     133        qTable.importBtn.setEnabled(true); 
     134         
    121135        viewer.statusBar.setProgress(false, 0, ""); 
    122         monitor.close(); 
     136        //monitor.close(); 
    123137        viewer.statusBar.setStatusIcon("gfx/import_done_16.png", "Import complete."); 
    124138 
    … …  
    164178        viewer.statusBar.setProgressValue(index); 
    165179         
    166         monitor.setNote("<html>Importing the following file [" + (index + 1) 
    167                 + " of " + total + "] into your OMERO server: <br><br>'" 
    168                 + shortName + "'<br><br></html>"); 
    169         monitor.setMaximum(count); 
    170         resetProgressMonitor(); 
    171         monitor.setProgress(monitor.getMinimum()); 
     180        //monitor.setNote("<html>Importing the following file [" + (index + 1) 
     181        //        + " of " + total + "] into your OMERO server: <br><br>'" 
     182        //        + shortName + "'<br><br></html>"); 
     183        //monitor.setMaximum(count); 
     184        //resetProgressMonitor(); 
     185        //monitor.setProgress(monitor.getMinimum()); 
    172186 
    173187        viewer.appendToOutput("> [" + index + "] Importing metadata for " 
    … …  
    181195                + "image \"" + shortName + "\"... "); 
    182196 
     197        qTable.setProgressInfo(index, count); 
     198         
    183199        viewer.appendToOutput("> Importing plane: "); 
    184200        library.importData(pixId, fileName, new ImportLibrary.Step() 
    … …  
    188204            public void step(int i) 
    189205            { 
    190                 if (i < monitor.getMaximum())  
    191                 { 
    192                      
    193                     monitor.setProgress(i);          
     206                if (i < qTable.getMaximum())  
     207                {    
     208                    //monitor.setProgress(i); 
     209                    qTable.setProgress(i); 
    194210                } 
    195211                if ((i % 10) == 0 || i == 1) viewer.appendToOutput(i + ""); 
    … …  
    204220        viewer.appendToOutputLn("> [" + index 
    205221                + "] Image imported successfully!"); 
     222 
     223        //System.err.println(qTable.table.getRowCount()); 
     224        qTable.setProgressDone(index); 
    206225         
    207226    } 
    … …  
    223242    } 
    224243 
    225     /** 
    226      * *cough* Nasty hack to get around the private "lastDisp" field semantics 
    227      * (field visibility) of the progress monitor. *cough* 
    228      */ 
    229     private void resetProgressMonitor() 
    230     { 
    231         try 
    232         { 
    233             Class klass = monitor.getClass(); 
    234             Field[] fields = klass.getDeclaredFields(); 
    235             
    236             for (Field field : fields) 
    237             { 
    238                 if (field.getName().equals("lastDisp")) 
    239                 { 
    240                     field.setAccessible(true); 
    241                     field.setInt(monitor, 0); 
    242                 }                
    243             } 
    244         } catch (Exception e) 
    245         { 
    246             e.printStackTrace(); 
    247             // Eat it. 
    248         } 
    249     } 
     244//    /** 
     245//     * *cough* Nasty hack to get around the private "lastDisp" field semantics 
     246//     * (field visibility) of the progress monitor. *cough* 
     247//     */ 
     248//    private void resetProgressMonitor() 
     249//    { 
     250//        try 
     251//        { 
     252//            Class klass = monitor.getClass(); 
     253//            Field[] fields = klass.getDeclaredFields(); 
     254//            
     255//            for (Field field : fields) 
     256//            { 
     257//                if (field.getName().equals("lastDisp")) 
     258//                { 
     259//                    field.setAccessible(true); 
     260//                    field.setInt(monitor, 0); 
     261//                }                
     262//            } 
     263//        } catch (Exception e) 
     264//        { 
     265//            e.printStackTrace(); 
     266//            // Eat it. 
     267//        } 
     268//    } 
    250269} 

Download in other formats:

  • Unified Diff
  • Zip Archive

Trac Powered

Powered by Trac 0.11
By Edgewall Software.

Visit the Trac open source project at
http://trac.edgewall.org/