diff --git a/src/ui/tmlcompd/TMLCPrimitivePort.java b/src/ui/tmlcompd/TMLCPrimitivePort.java index 6365437f50295686cc1230ef8d098c2866adb622..a59b21a4795915029d19692cbb8f2f3a7f7b3b6d 100755 --- a/src/ui/tmlcompd/TMLCPrimitivePort.java +++ b/src/ui/tmlcompd/TMLCPrimitivePort.java @@ -82,12 +82,17 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent protected int lossPercentage; protected int maxNbOfLoss; //-1 means no max - public int checkStatus; + //Security Verification + public int checkConfStatus; + public int checkWeakAuthStatus; + public int checkStrongAuthStatus; public boolean checkConf; + public boolean checkAuth; public static int NOCHECK= 0; public static int TOCHECK = 1; public static int CHECKED_CONF = 2; public static int CHECKED_UNCONF = 3; + public String mappingName="???"; protected int decPoint = 3; @@ -117,7 +122,7 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent //value = "MyName"; makeValue(); setName("Primitive port"); - checkStatus= NOCHECK; + checkConfStatus= NOCHECK; list = new TType[nbMaxAttribute]; for(int i=0; i<nbMaxAttribute; i++) { list[i] = new TType(); @@ -296,31 +301,12 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent g.drawString(commName, x, y-1); } - // Name - - - // Type - /*String lname; - if ((si + 2) < height) { - switch(typep) { - case 0: - lname = "c"; - break; - case 1: - lname = "e"; - break; - case 2: - default: - lname = "r"; - } - w = g.getFontMetrics().stringWidth(lname); - if (w < (width / 2)) { - g.drawString(lname, x+width - w - 1, y+(int)(si)-2); - } - }*/ - if (checkConf){ - drawVerification(g); + if (checkConf && isOrigin){ + drawConfVerification(g); } + if (checkAuth && !isOrigin){ + drawAuthVerification(g); + } g.setFont(fold); drawParticularity(g); @@ -328,10 +314,52 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent public abstract void drawParticularity(Graphics g); - public void drawVerification(Graphics g){ + + public void drawAuthVerification(Graphics g){ + Color c = g.getColor(); + Color c1; + Color c2; + switch(checkStrongAuthStatus) { + case 2: + c1 = Color.green; + break; + case 3: + c1 = Color.red; + break; + default: + c1 = Color.gray; + } + switch(checkWeakAuthStatus) { + case 2: + c2 = Color.green; + break; + case 3: + c2 = Color.red; + break; + default: + c2= c1; + } + + g.drawOval(x-16, y, 10, 15); + g.setColor(c1); + int[] xps = new int[]{x-18, x-18, x-2}; + int[] yps = new int[]{y+6, y+20, y+20}; + int[] xpw = new int[]{x-2, x-2, x-18}; + int[] ypw = new int[]{y+20, y+6, y+6}; + g.fillPolygon(xps, yps,3); + + g.setColor(c2); + g.fillPolygon(xpw, ypw, 3); + g.setColor(c); + g.drawPolygon(xps, yps,3); + g.drawPolygon(xpw, ypw, 3); + g.drawString("S", x-16, y+18); + g.drawString("W", x-9, y+14); + } + public void drawConfVerification(Graphics g){ Color c = g.getColor(); Color c1; - switch(checkStatus) { + switch(checkConfStatus) { case 1: c1 = Color.gray; break; @@ -453,7 +481,7 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent TMLCPrimitiveComponent tgc = (TMLCPrimitiveComponent)(getFather()); otherTypes = tgc.getAllRecords(); } - JDialogTMLCompositePort jda = new JDialogTMLCompositePort(commName, typep, list[0], list[1], list[2], list[3], list[4], isOrigin, isFinite, isBlocking, ""+maxSamples, ""+widthSamples, isLossy, lossPercentage, maxNbOfLoss, frame, "Port properties", otherTypes, dataFlowType, associatedEvent, isPrex, isPostex, checkConf); + JDialogTMLCompositePort jda = new JDialogTMLCompositePort(commName, typep, list[0], list[1], list[2], list[3], list[4], isOrigin, isFinite, isBlocking, ""+maxSamples, ""+widthSamples, isLossy, lossPercentage, maxNbOfLoss, frame, "Port properties", otherTypes, dataFlowType, associatedEvent, isPrex, isPostex, checkConf, checkAuth); jda.setSize(350, 700); GraphicLib.centerOnParent(jda); jda.show(); // blocked until dialog has been closed @@ -484,15 +512,16 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent typep = jda.getPortType(); checkConf = jda.checkConf; if (checkConf){ - if (checkStatus==NOCHECK){ - checkStatus=TOCHECK; + if (checkConfStatus==NOCHECK){ + checkConfStatus=TOCHECK; } } else { - if (checkStatus!=NOCHECK){ - checkStatus=NOCHECK; + if (checkConfStatus!=NOCHECK){ + checkConfStatus=NOCHECK; } } + checkAuth=jda.checkAuth; for(int i=0; i<nbMaxAttribute; i++) { //TraceManager.addDev("Getting string type: " + jda.getStringType(i)); list[i].setType(jda.getStringType(i)); @@ -545,7 +574,8 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent sb.append("\" dataFlowType=\"" + dataFlowType); sb.append("\" associatedEvent=\"" + associatedEvent); sb.append("\" checkConf=\"" + checkConf); - sb.append("\" checkStatus=\"" + checkStatus); + sb.append("\" checkAuth=\"" + checkAuth); + sb.append("\" checkConfStatus=\"" + checkConfStatus); sb.append("\" />\n"); for(int i=0; i<nbMaxAttribute; i++) { //System.out.println("Attribute:" + i); @@ -624,7 +654,8 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent dataFlowType = elt.getAttribute("dataFlowType"); associatedEvent = elt.getAttribute("associatedEvent"); checkConf = (elt.getAttribute("checkConf").compareTo("true")==0); - checkStatus = Integer.valueOf(elt.getAttribute("checkStatus")); + checkAuth = (elt.getAttribute("checkAuth").compareTo("true")==0); + checkConfStatus = Integer.valueOf(elt.getAttribute("checkConfStatus")); isLossy = (elt.getAttribute("isLossy").compareTo("true") ==0); isPrex = (elt.getAttribute("isPrex").compareTo("true") ==0); isPostex = (elt.getAttribute("isPostex").compareTo("true") ==0); diff --git a/src/ui/window/JDialogTMLCompositePort.java b/src/ui/window/JDialogTMLCompositePort.java index ea71a81377f55764479f0498663f00c3c4d32dcf..55b2d700a1704308393b32795001d612cb41d299 100755 --- a/src/ui/window/JDialogTMLCompositePort.java +++ b/src/ui/window/JDialogTMLCompositePort.java @@ -73,7 +73,7 @@ public class JDialogTMLCompositePort extends javax.swing.JDialog implements Acti public boolean data; public boolean checkConf; - public boolean checkAuth = false; + public boolean checkAuth; // Panel1 private JTextField nameText, maxText, widthText, associatedEventJT; private JComboBox typePort, typeList1, typeList2, typeList3, typeList4, typeList5; @@ -92,7 +92,7 @@ public class JDialogTMLCompositePort extends javax.swing.JDialog implements Acti private JButton closeButton; private JButton cancelButton; - public JDialogTMLCompositePort(String _name, int _portIndex, TType _type1, TType _type2, TType _type3, TType _type4, TType _type5, boolean _isOrigin, boolean _isFinite, boolean _isBlocking, String _maxInFIFO, String _widthSamples, boolean _isLossy, int _lossPercentage, int _maxNbOfLoss, Frame f, String title, Vector<String> _types, String _dataFlowType, String _associatedEvent, boolean _isPrex, boolean _isPostex , boolean _checkConf) { + public JDialogTMLCompositePort(String _name, int _portIndex, TType _type1, TType _type2, TType _type3, TType _type4, TType _type5, boolean _isOrigin, boolean _isFinite, boolean _isBlocking, String _maxInFIFO, String _widthSamples, boolean _isLossy, int _lossPercentage, int _maxNbOfLoss, Frame f, String title, Vector<String> _types, String _dataFlowType, String _associatedEvent, boolean _isPrex, boolean _isPostex , boolean _checkConf, boolean _checkAuth) { super(f, title, true); frame = f; @@ -118,6 +118,7 @@ public class JDialogTMLCompositePort extends javax.swing.JDialog implements Acti lossPercentage = _lossPercentage; maxNbOfLoss = _maxNbOfLoss; checkConf = _checkConf; + checkAuth = _checkAuth; myInitComponents(); initComponents(); @@ -278,6 +279,7 @@ public class JDialogTMLCompositePort extends javax.swing.JDialog implements Acti confCheckBox.setSelected(checkConf); authCheckBox = new JCheckBox("Check Authenticity"); panel2.add(authCheckBox,c2); + authCheckBox.setSelected(checkAuth); c2.gridwidth = 1; c2.fill = GridBagConstraints.HORIZONTAL; c2.anchor = GridBagConstraints.CENTER; @@ -568,6 +570,7 @@ public class JDialogTMLCompositePort extends javax.swing.JDialog implements Acti isPrex = isPrexCB.isSelected(); isPostex = isPostexCB.isSelected(); checkConf = confCheckBox.isSelected(); + checkAuth = authCheckBox.isSelected(); if( isPrex && isPostex ) { JOptionPane.showMessageDialog( frame, "A channel cannot be marked as both prex and postex", "Error", JOptionPane.INFORMATION_MESSAGE );