From 375627f50dc1b82224ee9878da97b07bc17e3ac6 Mon Sep 17 00:00:00 2001 From: Philipp Spohr <spohr.philipp@web.de> Date: Fri, 29 Dec 2017 13:52:15 +0100 Subject: [PATCH] various fixes --- .../de/hhu/ba/yoshikoWrapper/core/ParameterSet.java | 9 ++++++++- .../yoshikoWrapper/swig/ClusterEditingSolutions.java | 4 ++++ .../hhu/ba/yoshikoWrapper/swig/LibraryInterface.java | 4 ++-- .../ba/yoshikoWrapper/swig/LibraryInterfaceJNI.java | 3 ++- .../swing/components/ClusterCountChooser.java | 3 ++- .../swing/components/IntegerInputField.java | 12 ++++++------ .../swing/components/OperationModePanel.java | 2 +- .../hhu/ba/yoshikoWrapper/tasks/AlgorithmTask.java | 2 ++ 8 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/core/ParameterSet.java b/src/main/java/de/hhu/ba/yoshikoWrapper/core/ParameterSet.java index 62271fa..ce7fbd1 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/core/ParameterSet.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/ParameterSet.java @@ -52,7 +52,7 @@ public class ParameterSet implements TunableValidator /**Describes whether auto configuration of the reduction rules is to be used. Overrides the bit mask.**/ public boolean suggestReduction = true; - @Tunable(description="Determines the number of clusters that are to be generated. -1 generates the optimal amount of clusters in the sense of WCE") + @Tunable(description="Determines the number of clusters that are to be generated. -1 generates the optimal amount of clusters in the sense of WCE",context="nogui") public int clusterCount = -1; @Override @@ -101,5 +101,12 @@ public class ParameterSet implements TunableValidator return true; } + @Override + public String toString(){ + String ret = ""; + ret += "Target Cluster Count: "+clusterCount+"\n"; + //TODO + return ret; + } } diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/swig/ClusterEditingSolutions.java b/src/main/java/de/hhu/ba/yoshikoWrapper/swig/ClusterEditingSolutions.java index 10eab62..ae586e7 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/swig/ClusterEditingSolutions.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/swig/ClusterEditingSolutions.java @@ -59,6 +59,10 @@ public class ClusterEditingSolutions { LibraryInterfaceJNI.ClusterEditingSolutions_setFlags(swigCPtr, this, SolutionFlags.getCPtr(f), f); } + public void printSolution(long index) { + LibraryInterfaceJNI.ClusterEditingSolutions_printSolution(swigCPtr, this, index); + } + public ClusterEditingSolutions() { this(LibraryInterfaceJNI.new_ClusterEditingSolutions(), true); } diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterface.java b/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterface.java index 82e0dee..227ab8a 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterface.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterface.java @@ -25,8 +25,8 @@ public class LibraryInterface { LibraryInterfaceJNI.setVerbosity(level); } - public static CoreAlgorithm getRun(LibraryInput input, int nrOptimalSolutions, String rulesBitMask, double multiplicativeFactor, boolean useHeuristic, boolean separatePartitionCuts, boolean separateTriangles) { - long cPtr = LibraryInterfaceJNI.getRun(LibraryInput.getCPtr(input), input, nrOptimalSolutions, rulesBitMask, multiplicativeFactor, useHeuristic, separatePartitionCuts, separateTriangles); + public static CoreAlgorithm getRun(LibraryInput input, int nrOptimalSolutions, String rulesBitMask, double multiplicativeFactor, boolean useHeuristic, boolean separatePartitionCuts, boolean separateTriangles, int targetClusterCount) { + long cPtr = LibraryInterfaceJNI.getRun(LibraryInput.getCPtr(input), input, nrOptimalSolutions, rulesBitMask, multiplicativeFactor, useHeuristic, separatePartitionCuts, separateTriangles, targetClusterCount); return (cPtr == 0) ? null : new CoreAlgorithm(cPtr, false); } diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterfaceJNI.java b/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterfaceJNI.java index 10744f7..49549a4 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterfaceJNI.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/swig/LibraryInterfaceJNI.java @@ -53,6 +53,7 @@ public class LibraryInterfaceJNI { public final static native long ClusterEditingSolutions_getNumberOfSolutions(long jarg1, ClusterEditingSolutions jarg1_); public final static native long ClusterEditingSolutions_getFlags(long jarg1, ClusterEditingSolutions jarg1_); public final static native void ClusterEditingSolutions_setFlags(long jarg1, ClusterEditingSolutions jarg1_, long jarg2, SolutionFlags jarg2_); + public final static native void ClusterEditingSolutions_printSolution(long jarg1, ClusterEditingSolutions jarg1_, long jarg2); public final static native long new_ClusterEditingSolutions(); public final static native void delete_ClusterEditingSolutions(long jarg1); public final static native long new_LibraryInput(); @@ -79,7 +80,7 @@ public class LibraryInterfaceJNI { public final static native void setTimeLimit(int jarg1); public final static native void setThreadLimit(int jarg1); public final static native void setVerbosity(int jarg1); - public final static native long getRun(long jarg1, LibraryInput jarg1_, int jarg2, String jarg3, double jarg4, boolean jarg5, boolean jarg6, boolean jarg7); + public final static native long getRun(long jarg1, LibraryInput jarg1_, int jarg2, String jarg3, double jarg4, boolean jarg5, boolean jarg6, boolean jarg7, int jarg8); public static void SwigDirector_CplexInformer_updateStatus__SWIG_0(CplexInformer jself, int state) { jself.updateStatus(YoshikoState.swigToEnum(state)); diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/ClusterCountChooser.java b/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/ClusterCountChooser.java index 24932a0..983a68b 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/ClusterCountChooser.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/ClusterCountChooser.java @@ -34,7 +34,8 @@ public class ClusterCountChooser extends JPanel { public ClusterCountChooser() { //Swing Component init - numSolutionsSetter = new IntegerInputField(); + numSolutionsSetter = new IntegerInputField(1,Integer.MAX_VALUE); + numSolutionsSetter.setValue(2); label = new JLabel(LocalizationManager.get("nrClusters")); SwingUtil.addAll(this,label, numSolutionsSetter); } diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/IntegerInputField.java b/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/IntegerInputField.java index d7d3376..7b39fd0 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/IntegerInputField.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/IntegerInputField.java @@ -34,12 +34,12 @@ public class IntegerInputField extends JFormattedTextField{ private final NumberFormatter formatter; -// public IntegerInputField(int minValue, int maxValue) { -// super(); -// formatter = FormatHelper.getIntegerFormatter(minValue,maxValue); -// this.setFormatter(formatter); -// this.setColumns(8); -// } + public IntegerInputField(int minValue, int maxValue) { + super(); + formatter = FormatHelper.getIntegerFormatter(minValue,maxValue); + this.setFormatter(formatter); + this.setColumns(8); + } public IntegerInputField() { super(); diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/OperationModePanel.java b/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/OperationModePanel.java index 8a4287c..e49f4ae 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/OperationModePanel.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/OperationModePanel.java @@ -108,7 +108,7 @@ public class OperationModePanel extends JPanel{ layout.setHorizontalGroup(layout.createParallelGroup(Alignment.LEADING,true) .addComponent(useClusterCount, DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(ccChooser, DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(ccChooser, DEFAULT_SIZE, DEFAULT_SIZE, DEFAULT_SIZE) .addComponent(useHeuristic, DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(useILP, DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(solutionNumberChooser, DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE) diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/tasks/AlgorithmTask.java b/src/main/java/de/hhu/ba/yoshikoWrapper/tasks/AlgorithmTask.java index 4031bdf..1f252f9 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/tasks/AlgorithmTask.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/tasks/AlgorithmTask.java @@ -163,6 +163,8 @@ public class AlgorithmTask extends AbstractTask implements ObservableTask, Tunab //Set the default value for insertion cost c_input.setDefaultInsertionCost(parameterSet.defaultInsertionCost); + System.out.print(parameterSet.toString()); //TODO: Move to debug logger + //Call Yoshiko <<< Algorithm is performed here c_algorithm = LibraryInterface.getRun(c_input, parameterSet.solCount, -- GitLab