From 05c61ee2003d03834cf7fb53a4ccb32cc368daef Mon Sep 17 00:00:00 2001 From: Philipp Spohr <spohr.philipp@web.de> Date: Thu, 17 Aug 2017 21:47:31 +0200 Subject: [PATCH] better now, small fixes here and there --- pom.xml | 2 +- .../ba/yoshikoWrapper/core/NetworkParser.java | 19 ++++++------- .../ba/yoshikoWrapper/gui/ColumnMapper.java | 28 ++++++++++--------- .../ba/yoshikoWrapper/gui/EditCostPanel.java | 20 ++++++++++--- 4 files changed, 41 insertions(+), 28 deletions(-) diff --git a/pom.xml b/pom.xml index e253b54..36149f4 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 cebd4e4..683e86d 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 f04fffb..b17b17b 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 22456af..c5b7c0e 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)); } -- GitLab