Changeset 7108


Ignore:
Timestamp:
10/21/10 21:10:51 (9 years ago)
Author:
aivar
Message:

New UI; not working.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/maven/projects/slim-plugin/src/main/java/loci/slim/SLIMProcessor.java

    r7088 r7108  
    7070import loci.slim.ui.IStartStopListener; 
    7171import loci.slim.ui.IUserInterfacePanel; 
     72import loci.slim.ui.IUserInterfacePanelListener; 
    7273import loci.slim.ui.UserInterfacePanel; 
    7374import loci.common.DataTools; 
     
    124125 
    125126    private Object m_synchFit = new Object(); 
     127    private volatile boolean m_quit; 
     128    private volatile boolean m_cancel; 
    126129    private volatile boolean m_fitInProgress; 
    127130    private volatile boolean m_fitted; 
     
    189192 
    190193    public SLIMProcessor() { 
     194        m_quit = false; 
     195        m_cancel = false; 
    191196        m_fitInProgress = false; 
    192197        m_fitted = false; 
     
    195200    public void processImage(Image<T> image) { 
    196201        boolean success = false; 
    197 System.out.println("processImage " + image); 
     202 
    198203        if (newLoadData(image)) { 
    199204            // create a grayscale image from the data 
    200205            createGlobalGrayScale(); 
    201             while (true) { 
     206             
     207            // show the UI; do fits 
     208            final IUserInterfacePanel uiPanel = new UserInterfacePanel(true); 
     209            uiPanel.setListener( 
     210                    new IUserInterfacePanelListener() { 
     211                        public void doFit() { 
     212                            m_cancel = false; 
     213                            getFitSettings(uiPanel); 
     214                            fitData(); 
     215                            uiPanel.reset(); 
     216                        } 
     217 
     218                        public void cancelFit() { 
     219                            m_cancel = true; 
     220                        } 
     221 
     222                    } 
     223                ); 
     224 
     225 
     226            while (!m_quit) { 
     227                try { 
     228                    Thread.sleep(1000); 
     229                } 
     230                catch (InterruptedException e) { 
     231 
     232                } 
     233            } 
     234        } 
     235 
     236     /*       while (true) { 
    202237                // ask what kind fo fit 
    203238                if (!showFitDialog()) { 
     
    210245                fitData(); 
    211246            } 
    212         } 
     247        } */ 
    213248        /* 
    214249        m_width = ImageUtils.getWidth(image); 
     
    274309            // create a grayscale image from the data 
    275310            createGlobalGrayScale(); 
    276             while (true) { 
     311 
     312            // show the UI; do fits 
     313            final IUserInterfacePanel uiPanel = new UserInterfacePanel(true); 
     314            uiPanel.setListener( 
     315                    new IUserInterfacePanelListener() { 
     316                        public void doFit() { 
     317                            m_cancel = false; 
     318                            getFitSettings(uiPanel); 
     319                            fitData(); 
     320                            uiPanel.reset(); 
     321                        } 
     322 
     323                        public void cancelFit() { 
     324                            m_cancel = true; 
     325                        } 
     326 
     327                    } 
     328                ); 
     329 
     330            while (!m_quit) { 
     331                try { 
     332                    Thread.sleep(1000); 
     333                } 
     334                catch (InterruptedException e) { 
     335                     
     336                } 
     337            } 
     338 
     339 
     340 
     341 
     342 
     343 
     344           /* while (true) { 
    277345                // ask what kind fo fit 
    278346                if (!showFitDialog()) { 
     
    284352                } 
    285353                fitData(); 
    286             } 
    287         } 
     354            } */ 
     355        } 
     356    } 
     357 
     358    private void getFitSettings(IUserInterfacePanel uiPanel) { 
     359        m_region = uiPanel.getRegion(); 
     360        m_algorithm = uiPanel.getAlgorithm(); 
     361        m_function = uiPanel.getFunction(); 
     362 
     363        m_x = uiPanel.getX(); 
     364        m_y = uiPanel.getY(); 
     365        m_startBin = uiPanel.getStart(); 
     366        m_stopBin = uiPanel.getStop(); 
     367        m_threshold = uiPanel.getThreshold(); 
     368 
     369        int components = uiPanel.getComponents(); 
     370        m_param = uiPanel.getParameters(); 
     371        m_free = uiPanel.getFree(); 
    288372    } 
    289373 
     
    11801264            while (pixelIterator.hasNext()) { 
    11811265                ++pixelCount; 
     1266                if (m_cancel) { 
     1267                    return; 
     1268                } 
    11821269                IJ.showProgress(pixelCount, m_height * m_width); 
    11831270                ChunkyPixel pixel = pixelIterator.next(); 
     
    12041291                } 
    12051292            } 
    1206             if (0 < pixelsToProcessCount) { 
     1293            if (!m_cancel && 0 < pixelsToProcessCount) { 
    12071294                processPixels(dataColorizer, m_height, curveFitDataList.toArray(new ICurveFitData[0]), pixelList.toArray(new ChunkyPixel[0])); 
    12081295            } 
     
    12231310                                for (int channel = 0; channel < m_channels; ++channel) { 
    12241311                                    if (channel != visibleChannel) { 
     1312                                        if (m_cancel) { 
     1313                                            return; 
     1314                                        } 
    12251315                                        if (wantFitted(bounds.x + x, bounds.y + y)) { 
    12261316                                            curveFitData = new CurveFitData(); 
     
    12481338                        for (int y = 0; y < m_height; ++y) { 
    12491339                            for (int x = 0; x < m_width; ++x) { 
     1340                                if (m_cancel) { 
     1341                                    return; 
     1342                                } 
    12501343                                if (aboveThreshold(x, y)) { 
    12511344                                    curveFitData = new CurveFitData(); 
     
    12691362        //TODO break the fit up into chunks to lower memory requirements 
    12701363        ICurveFitData dataArray[] = curveFitDataList.toArray(new ICurveFitData[0]); 
     1364        if (m_cancel) { 
     1365            return; 
     1366        } 
    12711367        doFit(dataArray); 
    12721368        //TODO save results 
     
    15401636        if (0 < dataArray.length) { 
    15411637            //TODO need to be able to examine any fitted pixel; for now just show the last fitted pixel. // first! 
    1542             DecayGraph decayGraph = new DecayGraph(m_timeRange, m_startBin, m_stopBin, dataArray[0]); //dataArray.length - 1]); 
     1638            DecayGraph decayGraph = new DecayGraph(m_startBin, m_stopBin, m_timeBins, m_timeRange, dataArray[0]); //dataArray.length - 1]); 
    15431639            decayGraph.setStartStopListener(new MyListener()); 
    1544                     JFrame window = new JFrame("SLIM"); 
    1545                     JComponent component = decayGraph.getComponent(); 
    1546                     window.getContentPane().add(component); 
    1547                     window.setSize(450, 450); 
    1548                     window.pack(); 
    1549                     window.setVisible(true); 
     1640            JFrame frame = decayGraph.getFrame(); 
     1641            frame.setVisible(true); 
    15501642        } 
    15511643         
     
    17871879        if (0 < dataArray.length) { 
    17881880            //TODO need to be able to examine any fitted pixel; for now just show the last fitted pixel. // first! 
    1789             DecayGraph decayGraph = new DecayGraph(curveFitter.getXInc(), m_startBin, m_stopBin, dataArray[0]); //dataArray.length - 1]); 
     1881            DecayGraph decayGraph = new DecayGraph(m_startBin, m_stopBin, m_timeBins, curveFitter.getXInc(), dataArray[0]); //dataArray.length - 1]); 
    17901882            decayGraph.setStartStopListener(new MyListener()); 
    1791                     JFrame window = new JFrame("SLIM"); 
    1792                     JComponent component = decayGraph.getComponent(); 
    1793                     window.getContentPane().add(component); 
    1794                     window.setSize(450, 450); 
    1795                     window.pack(); 
    1796                     window.setVisible(true); 
     1883            JFrame frame = decayGraph.getFrame(); 
     1884            frame.setVisible(true); 
    17971885        } 
    17981886 
Note: See TracChangeset for help on using the changeset viewer.