Skip to content
Snippets Groups Projects
Commit c8a7cf2e authored by Philipp Spohr's avatar Philipp Spohr
Browse files

more logical sorting of parameters

parent b0e29b6a
No related branches found
No related tags found
No related merge requests found
...@@ -32,6 +32,10 @@ public class AlgorithmTask extends AbstractTask { ...@@ -32,6 +32,10 @@ public class AlgorithmTask extends AbstractTask {
private int timeLimit; private int timeLimit;
private CyNetwork net; private CyNetwork net;
private String bitMaskRules; private String bitMaskRules;
private double multiplicativeFactor;
private boolean separatePartitionCuts;
private boolean separateTriangles;
private boolean useHeuristic;
private SolutionsPanel solutionsPanel; private SolutionsPanel solutionsPanel;
public AlgorithmTask( public AlgorithmTask(
...@@ -60,7 +64,7 @@ public class AlgorithmTask extends AbstractTask { ...@@ -60,7 +64,7 @@ public class AlgorithmTask extends AbstractTask {
this.bitMaskRules = bitMaskRules; this.bitMaskRules = bitMaskRules;
this.multiplicativeFactor = multiplicativeFactor; this.multiplicativeFactor = multiplicativeFactor;
this.separatePartitionCuts = separatePartitionCuts; this.separatePartitionCuts = separatePartitionCuts;
this.separateTriangles =separateTriangle; this.separateTriangles = separateTriangles;
this.useHeuristic = useHeuristic; this.useHeuristic = useHeuristic;
this.solutionsPanel = solutionsPanel; this.solutionsPanel = solutionsPanel;
} }
......
...@@ -44,6 +44,7 @@ public class MainPanel extends ComfortPanel implements CytoPanelComponent { ...@@ -44,6 +44,7 @@ public class MainPanel extends ComfortPanel implements CytoPanelComponent {
private final ReductionRulesChooser reductionRulesChooser; private final ReductionRulesChooser reductionRulesChooser;
private final JCheckBox useTriangleCutsBox; private final JCheckBox useTriangleCutsBox;
private final JCheckBox usePartitionCutsBox; private final JCheckBox usePartitionCutsBox;
...@@ -75,6 +76,14 @@ public class MainPanel extends ComfortPanel implements CytoPanelComponent { ...@@ -75,6 +76,14 @@ public class MainPanel extends ComfortPanel implements CytoPanelComponent {
heuristicGroup.add(useHeuristic); heuristicGroup.add(useHeuristic);
reductionRulesChooser = new ReductionRulesChooser();
timeLimitSetter = new TimeLimitSetter();
useTriangleCutsBox = new JCheckBox("Use Triangle Cuts");
usePartitionCutsBox = new JCheckBox("Use Partition Cuts");
JButton runButton = new JButton("RUN"); JButton runButton = new JButton("RUN");
runButton.addActionListener(new ActionListener() { runButton.addActionListener(new ActionListener() {
...@@ -90,8 +99,12 @@ public class MainPanel extends ComfortPanel implements CytoPanelComponent { ...@@ -90,8 +99,12 @@ public class MainPanel extends ComfortPanel implements CytoPanelComponent {
ecPanel.getForbiddenColumn(), ecPanel.getForbiddenColumn(),
ecPanel.getDefaultInsertionCost(), ecPanel.getDefaultInsertionCost(),
ecPanel.getDefaultDeletionCost(), ecPanel.getDefaultDeletionCost(),
ReductionRulesChooser.getBitMask(), reductionRulesChooser.getBitMask(),
name, alignmentX, autoscrolls, autoscrolls, autoscrolls, solutionsPanel reductionRulesChooser.getMultFactor(),
useTriangleCutsBox.isSelected(),
usePartitionCutsBox.isSelected(),
useHeuristic.isSelected(),
solutionsPanel
); );
CyCore.dialogTaskManager.execute(new TaskIterator(1,yoshiko)); CyCore.dialogTaskManager.execute(new TaskIterator(1,yoshiko));
solutionsPanel.setVisible(true); solutionsPanel.setVisible(true);
...@@ -108,13 +121,6 @@ public class MainPanel extends ComfortPanel implements CytoPanelComponent { ...@@ -108,13 +121,6 @@ public class MainPanel extends ComfortPanel implements CytoPanelComponent {
}); });
reductionRulesChooser = new ReductionRulesChooser();
timeLimitSetter = new TimeLimitSetter();
useTriangleCutsBox = new JCheckBox("Use Triangle Cuts");
usePartitionCutsBox = new JCheckBox("Use Partition Cuts");
this.addAll( this.addAll(
langSwitcher, langSwitcher,
......
package de.hhu.ba.yoshikoWrapper.gui; package de.hhu.ba.yoshikoWrapper.gui;
import java.awt.Component; import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout; import javax.swing.BoxLayout;
import javax.swing.JCheckBox; import javax.swing.JCheckBox;
...@@ -8,12 +10,17 @@ import javax.swing.JCheckBox; ...@@ -8,12 +10,17 @@ import javax.swing.JCheckBox;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class ReductionRulesChooser extends ComfortPanel{ public class ReductionRulesChooser extends ComfortPanel{
private JCheckBox useCRule; private final JCheckBox useCRule;
private JCheckBox useCCRule; private final JCheckBox useCCRule;
private JCheckBox useACRule; private final JCheckBox useACRule;
private JCheckBox useHERule; private final JCheckBox useHERule;
private JCheckBox usePDRRule; private final JCheckBox usePDRRule;
private JCheckBox useSNRule; private final JCheckBox useSNRule;
private final DoubleInputField multFactor;
private final ComfortPanel SNPanel;
public ReductionRulesChooser() { public ReductionRulesChooser() {
this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
...@@ -24,6 +31,25 @@ public class ReductionRulesChooser extends ComfortPanel{ ...@@ -24,6 +31,25 @@ public class ReductionRulesChooser extends ComfortPanel{
useHERule = new JCheckBox("Use Heavy-Edge 3 in 1 Rule"); useHERule = new JCheckBox("Use Heavy-Edge 3 in 1 Rule");
usePDRRule = new JCheckBox("Use Parameter Dependent Reduction Rule"); usePDRRule = new JCheckBox("Use Parameter Dependent Reduction Rule");
useSNRule = new JCheckBox("Use Similar Neighborhood Rule"); useSNRule = new JCheckBox("Use Similar Neighborhood Rule");
multFactor = new DoubleInputField(1, Double.POSITIVE_INFINITY);
multFactor.setText("1.0");
SNPanel = new ComfortPanel();
SNPanel.addAll(useSNRule,multFactor);
useSNRule.setSelected(true);
useSNRule.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (useSNRule.isSelected()) {
multFactor.setEnabled(true);
}
else {
multFactor.setEnabled(false);
}
}
});
this.addAll( this.addAll(
useCRule, useCRule,
...@@ -31,13 +57,15 @@ public class ReductionRulesChooser extends ComfortPanel{ ...@@ -31,13 +57,15 @@ public class ReductionRulesChooser extends ComfortPanel{
useACRule, useACRule,
useHERule, useHERule,
usePDRRule, usePDRRule,
useSNRule SNPanel
); );
//By default all reduction rules should be applied //By default all reduction rules should be applied
for (Component c :this.getComponents()) { for (Component c :this.getComponents()) {
if (c instanceof JCheckBox) {
((JCheckBox)c).setSelected(true); ((JCheckBox)c).setSelected(true);
} }
} }
}
/** Creates a 6 Bit bitmask representing the currently selected choice of reduction rules. /** Creates a 6 Bit bitmask representing the currently selected choice of reduction rules.
...@@ -53,4 +81,11 @@ public class ReductionRulesChooser extends ComfortPanel{ ...@@ -53,4 +81,11 @@ public class ReductionRulesChooser extends ComfortPanel{
ret += (useSNRule.isSelected() ? "1" : "0"); ret += (useSNRule.isSelected() ? "1" : "0");
return ret; return ret;
} }
public double getMultFactor() {
if (useSNRule.isSelected()) {
return multFactor.getValueAsDouble();
}
return 1.0d;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment