Changeset 7195


Ignore:
Timestamp:
11/12/10 21:04:17 (9 years ago)
Author:
aivar
Message:

Dynamically sets minimum, as well as maximum. TIdied up code & added comments.

File:
1 edited

Legend:

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

    r7167 r7195  
    6363import loci.slim.SLIMProcessor.FitFunction; 
    6464import loci.slim.SLIMProcessor.FitRegion; 
     65import loci.slim.analysis.SLIMAnalysis; 
    6566 
    6667/** 
     
    113114    public IUserInterfacePanelListener m_listener; 
    114115 
    115     int m_fittedComponents = 0; 
     116    int m_fittedParameterCount = 0; 
    116117 
    117118    // UI panel 
     
    123124    JComboBox m_algorithmComboBox; 
    124125    JComboBox m_functionComboBox; 
     126    JComboBox m_analysisComboBox; 
     127    JCheckBox m_fitAllChannels; 
    125128 
    126129    // fit settings 
     
    192195    JButton m_fitButton; 
    193196 
    194     public UserInterfacePanel(boolean showTau) { 
     197    public UserInterfacePanel(boolean showTau, SLIMAnalysis analysis) { 
    195198        String lifetimeLabel = "" + (showTau ? TAU : LAMBDA); 
    196199         
    197200        m_frame = new JFrame("SLIM Plugin"); 
    198         m_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     201        //m_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    199202 
    200203        // create outer panel 
     
    206209        innerPanel.setLayout(new BoxLayout(innerPanel, BoxLayout.X_AXIS)); 
    207210 
    208         JPanel fitPanel = createFitPanel(); 
     211        JPanel fitPanel = createFitPanel(analysis); 
    209212        fitPanel.setBorder(border("Fit")); 
    210213        innerPanel.add(fitPanel); 
     
    297300    } 
    298301 
    299     private JPanel createFitPanel() { 
     302    private JPanel createFitPanel(SLIMAnalysis analysis) { 
    300303        JPanel fitPanel = new JPanel(); 
    301304        fitPanel.setBorder(new EmptyBorder(0, 0, 8, 8)); 
     
    331334        fitPanel.add(m_functionComboBox); 
    332335 
     336        JLabel analysisLabel = new JLabel("Analysis"); 
     337        analysisLabel.setHorizontalAlignment(SwingConstants.RIGHT); 
     338        fitPanel.add(analysisLabel); 
     339        m_analysisComboBox = new JComboBox(analysis.getNames()); 
     340        fitPanel.add(m_analysisComboBox); 
     341 
    333342        // rows, cols, initX, initY, xPad, yPad 
    334         SpringUtilities.makeCompactGrid(fitPanel, 3, 2, 4, 4, 4, 4); 
     343        SpringUtilities.makeCompactGrid(fitPanel, 4, 2, 4, 4, 4, 4); 
    335344 
    336345        JPanel panel = new JPanel(new BorderLayout()); 
    337346        panel.add("North", fitPanel); 
    338347 
     348        m_fitAllChannels = new JCheckBox("Fit all channels"); 
     349        m_fitAllChannels.setSelected(true); 
     350 
     351        panel.add("South", m_fitAllChannels); 
    339352        return panel; 
    340353    } 
     
    758771     */ 
    759772    private void enableAll(boolean enable) { 
     773        // fit algorithm settings 
    760774        m_regionComboBox.setEnabled(enable); 
    761775        m_algorithmComboBox.setEnabled(enable); 
    762776        m_functionComboBox.setEnabled(enable); 
    763  
    764         // fit settings 
     777        m_analysisComboBox.setEnabled(enable); 
     778        m_fitAllChannels.setEnabled(enable); 
     779 
     780        // fit control settings 
    765781        m_xField.setEditable(enable); 
    766782        m_yField.setEditable(enable); 
     
    877893    } 
    878894 
     895    public String getAnalysis() { 
     896        String selected = (String) m_analysisComboBox.getSelectedItem(); 
     897        return selected; 
     898    } 
     899 
     900    public boolean getFitAllChannels() { 
     901        return m_fitAllChannels.isSelected(); 
     902    } 
     903 
    879904    public int getX() { 
    880905        return parseInt(m_xField); 
     
    917942    } 
    918943 
    919     public int getComponents() { 
    920         int components = 0; 
     944    public int getParameterCount() { 
     945        int count = 0; 
    921946        String function = (String) m_functionComboBox.getSelectedItem(); 
    922947        if (function.equals(SINGLE_EXPONENTIAL)) { 
    923             components = 3; 
     948            count = 3; 
    924949        } 
    925950        else if (function.equals(DOUBLE_EXPONENTIAL)) { 
    926             components = 5; 
     951            count = 5; 
    927952        } 
    928953        else if (function.equals(TRIPLE_EXPONENTIAL)) { 
    929             components = 7; 
     954            count = 7; 
    930955        } 
    931956        else if (function.equals(STRETCHED_EXPONENTIAL)) { 
    932             components = 4; 
    933         } 
    934         return components; 
    935     } 
    936  
    937     public void setFittedComponents(int components) { 
    938         m_fittedComponents = components; 
     957            count = 4; 
     958        } 
     959        return count; 
     960    } 
     961 
     962    public void setFittedParameterCount(int count) { 
     963        m_fittedParameterCount = count; 
    939964    } 
    940965 
     
    11221147    } 
    11231148 
    1124     void reconcileStartParam() { 
    1125         boolean enable = (m_fittedComponents == getComponents()); 
     1149    /** 
     1150     * This decides whether the existing parameters could be used as the 
     1151     * initial values for another fit. 
     1152     */ 
     1153    private void reconcileStartParam() { 
     1154        // parameter counts happen to be unique for each fit function 
     1155        boolean enable = (m_fittedParameterCount == getParameterCount()); 
    11261156        m_startParam1.setEnabled(enable); 
    11271157        m_startParam2.setEnabled(enable); 
Note: See TracChangeset for help on using the changeset viewer.