diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java b/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java index 32a50c094eca66d60c9b731a12989c34cf97c042..14967895edce8fb4bc906035114e91f5c3f97409 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java @@ -86,7 +86,6 @@ public class CyActivator extends AbstractCyActivator { CyCore.continuousMappingFactory = getService(context,VisualMappingFunctionFactory.class, "(mapping.type=continuous)"); CyCore.rootNetworkManager = getService(context,CyRootNetworkManager.class); CyCore.applyVisualStyleTaskFactory = getService(context,ApplyVisualStyleTaskFactory.class); - //TODO: Not sure how to infer type here CyCore.renderingEngineFactory = getService(context,RenderingEngineFactory.class); //Set language according to settings diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/core/AlgorithmTask.java b/src/main/java/de/hhu/ba/yoshikoWrapper/core/AlgorithmTask.java index 1db8a878597551cfd6dd11e4b717d1fe75519752..1bb46b7a0e44e9f6153264c5e631ca1594dec37a 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/core/AlgorithmTask.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/AlgorithmTask.java @@ -24,7 +24,6 @@ package de.hhu.ba.yoshikoWrapper.core; import java.awt.Window; import java.util.Properties; -import javax.swing.JDialog; import javax.swing.JOptionPane; import org.cytoscape.application.swing.CytoPanel; diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/core/CyCore.java b/src/main/java/de/hhu/ba/yoshikoWrapper/core/CyCore.java index fd3c1cd8398e92f445cb899e2168d64a556e9a1f..ab7cefae60d41026fe780f4caaa54cfec85aee52 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/core/CyCore.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/CyCore.java @@ -62,6 +62,5 @@ public class CyCore { public static CyRootNetworkManager rootNetworkManager; public static ApplyVisualStyleTaskFactory applyVisualStyleTaskFactory; public static RenderingEngineFactory<CyNetwork> renderingEngineFactory; - // } diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java b/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java index 314e0e5df39c9290e773d06d873a34b941914121..551394143c76000e4e13832623316c9d31d5f589 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java @@ -31,7 +31,6 @@ import org.slf4j.Logger; import de.hhu.ba.yoshikoWrapper.logging.YoshikoLogger; import de.hhu.ba.yoshikoWrapper.swig.LibraryInput; -import de.hhu.ba.yoshikoWrapper.swig.LibraryInterface; public class NetworkParser { diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java index 8a134bb7faae9532a7a52df7e7acd87315b8b2a7..54303384a5f177144cc07cb13800e495f4505234 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java @@ -28,27 +28,25 @@ import javax.swing.JPanel; import javax.swing.GroupLayout.Alignment; import org.cytoscape.model.CyColumn; -import org.cytoscape.util.swing.BasicCollapsiblePanel; import de.hhu.ba.yoshikoWrapper.core.LocalizationManager; @SuppressWarnings("serial") //Will never be serialized -public class EditCostPanel extends BasicCollapsiblePanel { +public class EditCostPanel extends JPanel { //SWING COMPONENTS - private ColumnMapper columnMapper; + private final ColumnMapper columnMapper; - private DoubleInputField icField; - private DoubleInputField dcField; + private final DoubleInputField icField; + private final DoubleInputField dcField; - private JLabel icLabel; - private JLabel dcLabel; + private final JLabel icLabel; + private final JLabel dcLabel; - private JPanel groupIC; - private JPanel groupDC; + private final JPanel groupIC; + private final JPanel groupDC; public EditCostPanel() { - super(LocalizationManager.get("editingCostPanel")); //Initialize components columnMapper = new ColumnMapper(); @@ -73,7 +71,7 @@ public class EditCostPanel extends BasicCollapsiblePanel { //Layout - GroupLayout layout = new GroupLayout(this.getContentPane()); + GroupLayout layout = new GroupLayout(this); layout.setHorizontalGroup(layout.createParallelGroup(Alignment.LEADING,true) .addComponent(columnMapper) @@ -87,10 +85,9 @@ public class EditCostPanel extends BasicCollapsiblePanel { .addComponent(groupDC) ); - this.getContentPane().setLayout(layout); + this.setLayout(layout); } - //SETTER / GETTER public CyColumn getWeightColumn() { diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/LanguageSwitcherPanel.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/LanguageSwitcherPanelFactory.java similarity index 80% rename from src/main/java/de/hhu/ba/yoshikoWrapper/gui/LanguageSwitcherPanel.java rename to src/main/java/de/hhu/ba/yoshikoWrapper/gui/LanguageSwitcherPanelFactory.java index aa8c5a78ceedba6c1cfea373aaf686c92058f3fb..3c1c3666897995ae0f8475b62db4cb4d644f09da 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/LanguageSwitcherPanel.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/LanguageSwitcherPanelFactory.java @@ -28,20 +28,19 @@ import org.cytoscape.util.swing.BasicCollapsiblePanel; import de.hhu.ba.yoshikoWrapper.core.LocalizationManager; -@SuppressWarnings("serial") -public class LanguageSwitcherPanel extends BasicCollapsiblePanel{ +public class LanguageSwitcherPanelFactory{ - private final LanguageSwitcher switcher; - - public LanguageSwitcherPanel() { - super(LocalizationManager.get("switchLanguage")); - this.getContentPane().setLayout(new BoxLayout(this.getContentPane(),BoxLayout.X_AXIS)); + public static BasicCollapsiblePanel createLanguageSwitcherPanel() { + final LanguageSwitcher switcher; + final BasicCollapsiblePanel ret = new BasicCollapsiblePanel(LocalizationManager.get("switchLanguage")); + ret.getContentPane().setLayout(new BoxLayout(ret.getContentPane(),BoxLayout.X_AXIS)); //SWING COMPONENTS INIT switcher = new LanguageSwitcher(); - SwingUtil.addAll(this, + SwingUtil.addAll(ret, switcher ); + return ret; } } diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/LibraryPanel.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/LibraryPanelFactory.java similarity index 86% rename from src/main/java/de/hhu/ba/yoshikoWrapper/gui/LibraryPanel.java rename to src/main/java/de/hhu/ba/yoshikoWrapper/gui/LibraryPanelFactory.java index 6267c168329641119ccd01fe00cfaf54a2fad8ed..47ce04b13abc6184d90be8f4e386471f5480a67f 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/LibraryPanel.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/LibraryPanelFactory.java @@ -37,19 +37,16 @@ import de.hhu.ba.yoshikoWrapper.core.LocalizationManager; import de.hhu.ba.yoshikoWrapper.core.YoshikoLoader; import de.hhu.ba.yoshikoWrapper.swig.LibraryInterface; -@SuppressWarnings("serial") -public class LibraryPanel extends BasicCollapsiblePanel { +public class LibraryPanelFactory{ - //SYMBOLIC LINKS - private LibraryPanel self = this; - - private LibStatusPanel libStatusPanel; - private JButton searchLibButton; - private JLabel yoshikoVersionLabel; - - - public LibraryPanel() { - super(LocalizationManager.get("libraryPanel")); + + public static BasicCollapsiblePanel createLibraryPanel() { + final BasicCollapsiblePanel ret = new BasicCollapsiblePanel(LocalizationManager.get("libraryPanel")); + + final LibStatusPanel libStatusPanel; + final JButton searchLibButton; + final JLabel yoshikoVersionLabel; + //SWING COMPONENT INITIALIZATION libStatusPanel = new LibStatusPanel(); searchLibButton = new JButton(LocalizationManager.get("resolveLibPath")); @@ -66,7 +63,7 @@ public class LibraryPanel extends BasicCollapsiblePanel { @Override public void actionPerformed(ActionEvent e) { final YLibChooser c = new YLibChooser(); - int returnVal = c.showOpenDialog(self); + int returnVal = c.showOpenDialog(ret); if (returnVal == JFileChooser.APPROVE_OPTION) { YoshikoLoader.loadLibrary(c.getSelectedFile().getAbsolutePath()); } @@ -76,14 +73,14 @@ public class LibraryPanel extends BasicCollapsiblePanel { } }); - SwingUtil.addAll(this, + SwingUtil.addAll(ret, libStatusPanel, yoshikoVersionLabel, searchLibButton ); //Layout - GroupLayout layout = new GroupLayout(this.getContentPane()); + GroupLayout layout = new GroupLayout(ret.getContentPane()); layout.setHorizontalGroup(layout.createParallelGroup(Alignment.LEADING,true) .addComponent(libStatusPanel) @@ -98,7 +95,8 @@ public class LibraryPanel extends BasicCollapsiblePanel { ); - this.getContentPane().setLayout(layout); - + ret.getContentPane().setLayout(layout); + + return ret; } } diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java index 35b57beeadd16b45e44d2a3e2fc7d82220fa1660..4fe0d95f0c611eeb39fc65b9e982fea289ae76db 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java @@ -30,13 +30,6 @@ import java.awt.Dialog.ModalityType; import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.ComponentEvent; -import java.awt.event.ComponentListener; -import java.awt.event.FocusEvent; -import java.awt.event.FocusListener; -import java.awt.event.WindowEvent; -import java.awt.event.WindowFocusListener; -import java.awt.event.WindowListener; import java.util.ArrayList; import java.util.Arrays; @@ -49,10 +42,10 @@ import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JOptionPane; import javax.swing.JPanel; -import javax.swing.SwingUtilities; import org.cytoscape.application.swing.CytoPanelComponent; import org.cytoscape.application.swing.CytoPanelName; +import org.cytoscape.util.swing.BasicCollapsiblePanel; import org.cytoscape.work.AbstractTask; import org.cytoscape.work.TaskIterator; @@ -67,8 +60,6 @@ import de.hhu.ba.yoshikoWrapper.core.YoshikoLoader; */ @SuppressWarnings("serial") public class MainPanel extends JPanel implements CytoPanelComponent { - - private MainPanel self = this; //SWING COMPONENTS @@ -77,10 +68,19 @@ public class MainPanel extends JPanel implements CytoPanelComponent { private final JCheckBox showAdvancedOptions; private final ArrayList<JComponent> advancedOptions; - private final LanguageSwitcherPanel langPanel; - private final LibraryPanel libraryPanel; + //Those two work with factories whysoever + private final BasicCollapsiblePanel langPanel; + private final BasicCollapsiblePanel libraryPanel; + + //Those don't work really as collapsible panels and cause glitches which forces the workaround of wrapping them + //Probably someone used getClass() == instead of instanceof so extending BasicCollapsiblePanel is sadly not possible + private final BasicCollapsiblePanel ecPanelWrapper; private final EditCostPanel ecPanel; + + private final BasicCollapsiblePanel reductionWrapper; private final ReductionRulesChooser reductionRulesChooser; + + private final BasicCollapsiblePanel opWrapper; private final OperationModePanel opModePanel; /** @@ -94,34 +94,38 @@ public class MainPanel extends JPanel implements CytoPanelComponent { showAdvancedOptions = new JCheckBox(LocalizationManager.get("showAdvanced")); showAdvancedOptions.addActionListener(toggleAdvancedOptionsListener); - langPanel = new LanguageSwitcherPanel(); + langPanel = LanguageSwitcherPanelFactory.createLanguageSwitcherPanel(); - libraryPanel = new LibraryPanel(); + libraryPanel = LibraryPanelFactory.createLibraryPanel(); //If no library is loaded yet the obvious panel should be showing up if (!YoshikoLoader.isLibraryLoaded()) { libraryPanel.setCollapsed(false); } ecPanel = new EditCostPanel(); + ecPanelWrapper = new BasicCollapsiblePanel(LocalizationManager.get("editingCostPanel")); + ecPanelWrapper.add(ecPanel); opModePanel = new OperationModePanel(); + opWrapper = new BasicCollapsiblePanel(LocalizationManager.get("operationMode")); + opWrapper.add(opModePanel); + reductionWrapper = new BasicCollapsiblePanel(LocalizationManager.get("redRuleChooserTitle")); reductionRulesChooser = new ReductionRulesChooser(); + reductionWrapper.add(reductionRulesChooser); JButton runButton = new JButton(LocalizationManager.get("run")); runButton.addActionListener(buttonListener); //Add components to main panel - - SwingUtil.addAll(this, header, showAdvancedOptions, langPanel, libraryPanel, - ecPanel, - reductionRulesChooser, - opModePanel, + ecPanelWrapper, + reductionWrapper, + opWrapper, runButton ); @@ -129,8 +133,8 @@ public class MainPanel extends JPanel implements CytoPanelComponent { advancedOptions = new ArrayList<JComponent>(); advancedOptions.addAll( Arrays.asList( - opModePanel, - reductionRulesChooser + opWrapper, + reductionWrapper ) ); @@ -140,16 +144,14 @@ public class MainPanel extends JPanel implements CytoPanelComponent { GroupLayout layout = new GroupLayout(this); layout.setAutoCreateGaps(true); layout.setAutoCreateContainerGaps(true); - layout.setHorizontalGroup(layout.createParallelGroup(Alignment.LEADING,true) - .addGap(50,50,50) .addComponent(header,DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(showAdvancedOptions,DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(langPanel,DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(libraryPanel,PREFERRED_SIZE, PREFERRED_SIZE, Short.MAX_VALUE) - .addComponent(ecPanel,DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(reductionRulesChooser,DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(opModePanel,DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(ecPanelWrapper,DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(reductionWrapper,DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(opWrapper,DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(runButton,DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) ); @@ -158,9 +160,9 @@ public class MainPanel extends JPanel implements CytoPanelComponent { .addComponent(showAdvancedOptions,PREFERRED_SIZE,PREFERRED_SIZE,PREFERRED_SIZE) .addComponent(langPanel,PREFERRED_SIZE,PREFERRED_SIZE,PREFERRED_SIZE) .addComponent(libraryPanel,PREFERRED_SIZE,PREFERRED_SIZE,PREFERRED_SIZE) - .addComponent(ecPanel,PREFERRED_SIZE,PREFERRED_SIZE,PREFERRED_SIZE) - .addComponent(reductionRulesChooser,PREFERRED_SIZE,PREFERRED_SIZE,PREFERRED_SIZE) - .addComponent(opModePanel,PREFERRED_SIZE,PREFERRED_SIZE,PREFERRED_SIZE) + .addComponent(ecPanelWrapper,PREFERRED_SIZE,PREFERRED_SIZE,PREFERRED_SIZE) + .addComponent(reductionWrapper,PREFERRED_SIZE,PREFERRED_SIZE,PREFERRED_SIZE) + .addComponent(opWrapper,PREFERRED_SIZE,PREFERRED_SIZE,PREFERRED_SIZE) .addComponent(runButton,PREFERRED_SIZE,PREFERRED_SIZE,PREFERRED_SIZE) ); @@ -248,6 +250,10 @@ public class MainPanel extends JPanel implements CytoPanelComponent { //GETTER / SETTER + + public ColumnMapper getColumnMapper() { + return ecPanel.getColumnMapper(); + } public Component getComponent() { return this; @@ -262,17 +268,10 @@ public class MainPanel extends JPanel implements CytoPanelComponent { } public String getTitle() { - //TODO: Be creative I guess return "Yoshiko"; } - public ColumnMapper getColumnMapper() { - return ecPanel.getColumnMapper(); - } - public Icon getIcon() { return GraphicsLoader.getLogo(16); } - - } diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/OperationModePanel.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/OperationModePanel.java index e3d38c77e2223e3fb57d2101b0121848dcb852ae..a761e96dbdfe70a2764cd60a4a065b4cf25dc601 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/OperationModePanel.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/OperationModePanel.java @@ -29,17 +29,14 @@ import static javax.swing.GroupLayout.DEFAULT_SIZE; import javax.swing.ButtonGroup; import javax.swing.GroupLayout; import javax.swing.JCheckBox; +import javax.swing.JPanel; import javax.swing.JRadioButton; -import org.cytoscape.util.swing.BasicCollapsiblePanel; import javax.swing.GroupLayout.Alignment; - -import de.hhu.ba.yoshikoWrapper.core.LocalizationManager; - @SuppressWarnings("serial") -public class OperationModePanel extends BasicCollapsiblePanel{ +public class OperationModePanel extends JPanel{ //SWING COMPONENTS private final JRadioButton useHeuristic; @@ -52,8 +49,6 @@ public class OperationModePanel extends BasicCollapsiblePanel{ private final ButtonGroup heuristicGroup; public OperationModePanel() { - - super(LocalizationManager.get("operationMode")); heuristicGroup = new ButtonGroup(); useILP = new JRadioButton("Use Integer Linear Programming"); @@ -84,7 +79,7 @@ public class OperationModePanel extends BasicCollapsiblePanel{ ); //Layout - GroupLayout layout = new GroupLayout(this.getContentPane()); + GroupLayout layout = new GroupLayout(this); layout.setAutoCreateContainerGaps(true); @@ -106,7 +101,7 @@ public class OperationModePanel extends BasicCollapsiblePanel{ .addComponent(usePartitionCutsBox) ); - this.getContentPane().setLayout(layout); + this.setLayout(layout); } diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ReductionRulesChooser.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ReductionRulesChooser.java index 00dc45c70bd254a30a02fb2df909d232f77ea3e1..ef62a8bcc0b1d21c0716d9707352d6bf937779e0 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ReductionRulesChooser.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ReductionRulesChooser.java @@ -33,12 +33,10 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.GroupLayout.Alignment; -import org.cytoscape.util.swing.BasicCollapsiblePanel; - import de.hhu.ba.yoshikoWrapper.core.LocalizationManager; @SuppressWarnings("serial") -public class ReductionRulesChooser extends BasicCollapsiblePanel{ +public class ReductionRulesChooser extends JPanel{ private final JCheckBox useCRule; private final JCheckBox useCCRule; @@ -53,8 +51,7 @@ public class ReductionRulesChooser extends BasicCollapsiblePanel{ public ReductionRulesChooser() { - - super(LocalizationManager.get("redRuleChooserTitle")); + //Initialize subcomponents useCRule = new JCheckBox("Use Clique Rule"); useCCRule = new JCheckBox("Use Critical-Clique Rule"); @@ -99,7 +96,7 @@ public class ReductionRulesChooser extends BasicCollapsiblePanel{ ); //Layout - GroupLayout layout = new GroupLayout(this.getContentPane()); + GroupLayout layout = new GroupLayout(this); layout.setAutoCreateGaps(true); @@ -123,7 +120,7 @@ public class ReductionRulesChooser extends BasicCollapsiblePanel{ .addComponent(SNPanel, DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) ); - this.getContentPane().setLayout(layout); + this.setLayout(layout); }