浏览代码

Fixes unwanted protocol changes on GUI refresh

Andreas T. Meyer-Berg 6 年之前
父节点
当前提交
11fc25df11

+ 1 - 1
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/core/simpleImplementation/SimpleProtocol.java

@@ -56,7 +56,7 @@ public class SimpleProtocol implements Protocol {
 		}
 		if(p==null) return ret;
 		p.setLastTrigger(timestep);
-		if(packetLost)ret.add(new SimplePacket(timestep, p, p==source?destination:source, "Lost"));
+		if(packetLost)ret.add(new SimplePacket(timestep, p, p == source ? destination : source, "Lost"));
 		if(p == destination)
 			ret.add(new SimplePacket(timestep, destination, source));
 		else

+ 13 - 5
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/popups/ConnectionCreationPanel.java

@@ -210,7 +210,6 @@ public class ConnectionCreationPanel extends JScrollPane {
 			@Override
 			public void actionPerformed(ActionEvent e) {
 				if (mutex) {
-					tfName.setText(connection.getName());
 					return;
 				}
 				connection.setName(tfName.getText());
@@ -234,7 +233,6 @@ public class ConnectionCreationPanel extends JScrollPane {
 		cmbSelectedLink
 				.addActionListener(a -> {
 					if (mutex) {
-						cmbSelectedLink.setSelectedIndex(lastLinkIndex);
 						return;
 					}
 					int cmbSelectedLinkIndex = cmbSelectedLink
@@ -280,7 +278,6 @@ public class ConnectionCreationPanel extends JScrollPane {
 
 		cmbConnection.addActionListener(a -> {
 			if (mutex) {
-				cmbConnection.setSelectedIndex(lastConnectionIndex);
 				return;
 			}
 			cmbConnection.getSelectedIndex();
@@ -336,6 +333,9 @@ public class ConnectionCreationPanel extends JScrollPane {
 		cmbProtocolType.addActionListener(new ActionListener() {
 			@Override
 			public void actionPerformed(ActionEvent e) {
+				if(mutex)
+					return;
+				
 				// TODO: Improve ImportPopUp
 				/**
 				 * Old Protocol
@@ -350,7 +350,7 @@ public class ConnectionCreationPanel extends JScrollPane {
 				Protocol newProtocol = null;
 				try {
 					// Create new Instance of the protocol
-					newProtocol = availableProtocols.get(
+					newProtocol = controller.getControllerImport().getProtocols().get(
 							cmbProtocolType.getSelectedIndex()).newInstance();
 				} catch (InstantiationException | IllegalAccessException e1) {
 					System.out
@@ -361,6 +361,9 @@ public class ConnectionCreationPanel extends JScrollPane {
 					System.out
 							.println("WARNING: Invalid Protocol Selected - restore last index");
 				} else if (connection.setProtocol(newProtocol)) {
+					System.out.println("Index"+cmbProtocolType.getSelectedIndex());
+					System.out.println("Protocol changed: ");
+					System.out.println(newProtocol.getClass().getSimpleName());
 					/**
 					 * New Roles as Strings
 					 */
@@ -723,12 +726,17 @@ public class ConnectionCreationPanel extends JScrollPane {
 				cmbProtocolType.addItem("unknown");
 			}
 		// Set Index to selected Protocol
-		for (int i = 0; i < availableProtocols.size(); i++)
+		lastProtocolIndex = -1;
+		for (int i = 0; i < availableProtocols.size(); i++){
+			System.out.println("i: "+i);
+			System.out.println("Protocol is: "+connection.getProtocol().getClass().getSimpleName());
+			System.out.println("Protocol: "+availableProtocols.get(i).getSimpleName());
 			if (connection.getProtocol().getClass()
 					.equals(availableProtocols.get(i))) {
 				// Select the right protocol and save last index
 				lastProtocolIndex = i;
 			}
+		}
 		cmbProtocolType.setSelectedIndex(lastProtocolIndex);
 
 		// Release mutex