diff --git a/pom.xml b/pom.xml index e253b54b5d68ef31abc25ff496d06925eefd82e6..36149f4ac0018cdaa6f665c5c5e97624bc4b8bfd 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ <groupId>de.hhu.ba</groupId> <artifactId>yoshikoWrapper</artifactId> - <version>0.0.1</version> + <version>0.0.2</version> <name>YoshikoWrapper</name> 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 cebd4e4e29532894f70e63993ed5a2d7c760cdf1..683e86d6066f052b4618214b93d7fb3620eef16a 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java @@ -47,9 +47,7 @@ public class NetworkParser { System.out.println("Using column: "+weightColumn.getName()); try { //Find out if the weights are double or int - @SuppressWarnings("unchecked") - Class<? extends Number> weightType = (Class<? extends Number>) weightColumn.getType(); - logger.debug("Column has type: "+weightType.getName()); + Class<?> weightType = weightColumn.getType(); if (weightType == Integer.class) { weight = (int)edgeEntry.get(weightColumn.getName(), weightType); } @@ -68,10 +66,16 @@ public class NetworkParser { boolean forbidden = false; boolean permanent = false; if (permanentColumn != null) { - permanent = (boolean)edgeEntry.get(permanentColumn.getName(), boolean.class); + //Additional check as it is not required to have a value in every row + if (edgeEntry.getAllValues().containsKey(permanentColumn.getName())) { + permanent = (boolean)edgeEntry.get(permanentColumn.getName(), Boolean.class); + } } if (forbiddenColumn != null) { - forbidden = (boolean)edgeEntry.get(forbiddenColumn.getName(), boolean.class); + //Additional check as it is not required to have a value in every row + if (edgeEntry.getAllValues().containsKey(forbiddenColumn.getName())) { + forbidden = (boolean)edgeEntry.get(forbiddenColumn.getName(), Boolean.class); + } } @@ -91,9 +95,4 @@ public class NetworkParser { return generatedInput; } - - - - - } diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ColumnMapper.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ColumnMapper.java index f04fffb9510e66654e989f2464cc84d3fa61ef90..b17b17b20cae59a787ae1ec3a9e2e848091dc1a5 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ColumnMapper.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ColumnMapper.java @@ -1,9 +1,13 @@ package de.hhu.ba.yoshikoWrapper.gui; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; +import javax.swing.BoxLayout; +import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; @@ -28,7 +32,10 @@ public class ColumnMapper extends ComfortPanel{ private JCheckBox useMappingPerm; private JCheckBox useMappingForb; + private JButton updateColumns; + public ColumnMapper() { + this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS)); cy = Core.getApplicationManager(); //SWING COMPONENTS @@ -40,27 +47,22 @@ public class ColumnMapper extends ComfortPanel{ useMappingPerm = new JCheckBox("Map edges as permanent"); useMappingForb = new JCheckBox("Map edges as forbidden"); - useMappingCost.setToolTipText( - "When you use this value you can assign a column in the edge table to represent the modification costs that are to be paid for deleting an edge." - +"You can also assign negative values if you have a complete graph to represent insertion costs." - +"Note: Any missing values are assumed to be the default values" - ); - this.addAll(useMappingCost,editingCostMapper,useMappingPerm,permanentMapper,useMappingForb,forbiddenMapper); + updateColumns = new JButton("Update Columns!"); + + this.addAll(useMappingCost,editingCostMapper,useMappingPerm,permanentMapper,useMappingForb,forbiddenMapper,updateColumns); //Initial call to get table values updateValues(); //Add a focus listener to update values - this.addFocusListener (new FocusListener() { + updateColumns.addActionListener(new ActionListener() { @Override - public void focusGained(FocusEvent e) { - updateValues(); + public void actionPerformed(ActionEvent e) { + updateValues(); //shitty temporary solution } - - @Override - public void focusLost(FocusEvent e) {} }); + } public void updateValues() { @@ -82,7 +84,7 @@ public class ColumnMapper extends ComfortPanel{ for (CyColumn c : net.getDefaultEdgeTable().getColumns()){ //Only add columns with boolean values if (c.getType() == Boolean.class) { - editingCostMapper.addItem(c); + forbiddenMapper.addItem(c); } } 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 22456af30debbd9f33f794c0b89f8ec005e27e4c..c5b7c0e980f7888b3a7f63ba7ea6f0d3114abacd 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java @@ -1,7 +1,9 @@ package de.hhu.ba.yoshikoWrapper.gui; import javax.swing.BorderFactory; +import javax.swing.BoxLayout; import javax.swing.JLabel; +import javax.swing.JPanel; import javax.swing.border.EtchedBorder; import org.cytoscape.model.CyColumn; @@ -16,7 +18,12 @@ public class EditCostPanel extends ComfortPanel { private JLabel icLabel; private JLabel dcLabel; + private ComfortPanel groupIC; + private ComfortPanel groupDC; + public EditCostPanel() { + //Define Layout + this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS)); //Initialize components columnMapper = new ColumnMapper(); icField = new DoubleInputField(Double.NEGATIVE_INFINITY,0); @@ -25,11 +32,16 @@ public class EditCostPanel extends ComfortPanel { dcField.setText("1.0"); icLabel = new JLabel("Insertion Cost:"); dcLabel = new JLabel("Deletion Cost:"); - icLabel.setLabelFor(icField); - dcLabel.setLabelFor(dcField); - this.addAll(columnMapper,icField,dcField,icLabel,dcLabel); + //Group the labels with their text fields + groupIC = new ComfortPanel(); + groupDC = new ComfortPanel(); + + groupIC.addAll(icLabel,icField); + groupDC.addAll(dcLabel,dcField); + + this.addAll(columnMapper,groupIC,groupDC); - // + //Decoration/Visual this.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED)); }