From 5d26f8c815a521f86f9cc48878ea91c5e1b35c3b Mon Sep 17 00:00:00 2001
From: Philipp Spohr <spohr.philipp@web.de>
Date: Wed, 16 Aug 2017 18:05:11 +0200
Subject: [PATCH] Small fix

---
 .../de/hhu/ba/yoshikoWrapper/core/Core.java   |  6 ++---
 .../ba/yoshikoWrapper/core/YoshikoLoader.java | 25 ++++++-------------
 .../gui/ModificationCostMapper.java           | 16 +++++++-----
 3 files changed, 21 insertions(+), 26 deletions(-)

diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/core/Core.java b/src/main/java/de/hhu/ba/yoshikoWrapper/core/Core.java
index 9dd443b..e00c591 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/core/Core.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/Core.java
@@ -63,9 +63,9 @@ public class Core {
 	public static void setApplicationManager(CyApplicationManager cyApplicationManager) {
 		cy = cyApplicationManager;
 	}
-	
-	public static CyNetwork getCurrentNetwork() {
-		return cy.getCurrentNetwork();
+
+	public static CyApplicationManager getApplicationManager() {
+		return cy;
 	}
 
 }
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/core/YoshikoLoader.java b/src/main/java/de/hhu/ba/yoshikoWrapper/core/YoshikoLoader.java
index e8fc5a9..3e0563a 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/core/YoshikoLoader.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/YoshikoLoader.java
@@ -2,21 +2,12 @@ package de.hhu.ba.yoshikoWrapper.core;
 
 import java.io.File;
 
-import de.hhu.ba.yoshikoWrapper.swig.LibraryInterface;
-
 public class YoshikoLoader {
 	
 	private static ConfigurationManager cm;
+	private static boolean isLoaded;
 	
 	public static void loadLibrary(String libPath) {
-		//TODO: Java has no method to unload a native library :( This means, that reloading the library file on the fly is not possible
-		
-		//Check 1: Library is already loaded
-		
-		if (isLibraryLoaded()) {
-			System.out.println("Library is already loaded!");
-			return;
-		}
 		
 		//Attempt to load from a previously stored path
 		File f = new File (libPath);
@@ -32,21 +23,21 @@ public class YoshikoLoader {
 			cm.getProperties().setProperty("pathToYoshiko", libPath);
 		}
 		catch(Exception e) {
-			e.printStackTrace();
+			//e.printStackTrace();
+			return;
 		}
+		isLoaded = true;
 	}
 	
 	//SETTER / GETTER
-	
-	public static boolean isLibraryLoaded() {
-
-		if (LibraryInterface.getVersionString() != null) return true;
-		return false;
-	}
 
 
 	public static void provideConfiguration(ConfigurationManager _cm) {
 		cm = _cm;
 	}
 
+	public static boolean isLibraryLoaded() {
+		return isLoaded;
+	}
+
 }
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ModificationCostMapper.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ModificationCostMapper.java
index f5f145c..dbccbf3 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ModificationCostMapper.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ModificationCostMapper.java
@@ -6,18 +6,18 @@ import java.awt.event.FocusListener;
 
 import javax.swing.JCheckBox;
 import javax.swing.JComboBox;
-import javax.swing.JPanel;
 
+import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.model.CyColumn;
 import org.cytoscape.model.CyNetwork;
 
 import de.hhu.ba.yoshikoWrapper.core.Core;
 
 @SuppressWarnings("serial") //will never be serialized
-public class ModificationCostMapper extends JPanel {
+public class ModificationCostMapper extends ComfortPanel {
 	
 	//Symbolic links
-	private CyNetwork net;
+	private CyApplicationManager cy;
 	
 	//Swing components
 	private JComboBox<CyColumn> tableFields;
@@ -31,7 +31,8 @@ public class ModificationCostMapper extends JPanel {
 				+"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"
 				);
-		net = Core.getCurrentNetwork();
+		cy = Core.getApplicationManager();
+		this.addAll(useMapping,tableFields);
 		//Initial call to get table values
 		updateValues();
 		//Add a focus listener to update values
@@ -53,8 +54,11 @@ public class ModificationCostMapper extends JPanel {
 	public void updateValues() {
 		//Clear entries
 		tableFields.removeAllItems();
-		for (CyColumn c : net.getDefaultEdgeTable().getColumns()){
-			tableFields.addItem(c);
+		CyNetwork net = cy.getCurrentNetwork();
+		if (net != null) { //Check if a network is loaded
+			for (CyColumn c : net.getDefaultEdgeTable().getColumns()){
+				tableFields.addItem(c);
+			}
 		}
 	}
 	
-- 
GitLab