From: Kevin D. <kev...@us...> - 2010-08-31 16:47:41
|
Update of /cvsroot/jmri/jmri/jmrit/display/configurexml In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv8737/jmri/jmrit/display/configurexml Modified Files: SlipTurnoutIconXml.java Log Message: Updated to cover scissor (double) crossings as well. Index: SlipTurnoutIconXml.java =================================================================== RCS file: /cvsroot/jmri/jmri/jmrit/display/configurexml/SlipTurnoutIconXml.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SlipTurnoutIconXml.java 30 Aug 2010 02:03:38 -0000 1.2 --- SlipTurnoutIconXml.java 31 Aug 2010 16:47:33 -0000 1.3 *************** *** 32,74 **** Element element = new Element("slipturnouticon"); ! element.setAttribute("turnoutEast", p.getNamedTurnout(true).getName()); ! element.setAttribute("turnoutWest", p.getNamedTurnout(false).getName()); ! storeCommonAttributes(p, element); ! ! // include contents ! element.setAttribute("tristate", p.getTristate()?"true":"false"); ! //element.setAttribute("turnoutType", p.getTurnoutType()?"double":"single"); - // new style - element.addContent(storeIcon("lowerWestToUpperEast", p.getLowerWestToUpperEastIcon(), p.getLWUEText())); - element.addContent(storeIcon("upperWestToLowerEast", p.getUpperWestToLowerEastIcon(), p.getUWLEText())); switch(p.getTurnoutType()){ ! case 0x00 : element.addContent(storeIcon("lowerWestToLowerEast", p.getLowerWestToLowerEastIcon(),p.getLWLEText())); element.addContent(storeIcon("upperWestToUpperEast", p.getUpperWestToUpperEastIcon(),p.getUWUEText())); element.setAttribute("turnoutType", "doubleSlip"); break; ! case 0x02: element.addContent(storeIcon("lowerWestToLowerEast", p.getLowerWestToLowerEastIcon(),p.getLWLEText())); element.setAttribute("turnoutType", "singleSlip"); element.setAttribute("singleSlipRoute", p.getSingleSlipRoute()?"upperWestToUpperEast":"lowerWestToLowerEast"); break; ! case 0x04: element.addContent(storeIcon("lowerWestToLowerEast", p.getLowerWestToLowerEastIcon(),p.getLWLEText())); element.setAttribute("turnoutType", "threeWay"); element.setAttribute("firstTurnoutExit", p.getSingleSlipRoute()?"upper":"lower"); - //TBC break; } ! /*if (p.getTurnoutType()){ ! element.addContent(storeIcon("lowerWestToLowerEast", p.getLowerWestToLowerEastIcon(),p.getLWLEText())); ! element.addContent(storeIcon("upperWestToUpperEast", p.getUpperWestToUpperEastIcon(),p.getUWUEText())); ! } else { ! element.addContent(storeIcon("lowerWestToLowerEast", p.getLowerWestToLowerEastIcon(),p.getLWLEText())); ! element.setAttribute("singleSlipRoute", p.getSingleSlipRoute()?"upperWestToUpperEast":"lowerWestToLowerEast"); ! }*/ ! element.addContent(super.storeIcon("unknown", p.getUnknownIcon())); element.addContent(super.storeIcon("inconsistent", p.getInconsistentIcon())); --- 32,75 ---- Element element = new Element("slipturnouticon"); ! //element.setAttribute("turnoutEast", p.getNamedTurnout(SlipTurnoutIcon.WEST).getName()); ! //element.setAttribute("turnoutWest", p.getNamedTurnout(SlipTurnoutIcon.EAST).getName()); ! element.addContent(new Element("turnoutEast").addContent(p.getNamedTurnout(SlipTurnoutIcon.EAST).getName())); ! element.addContent(new Element("turnoutWest").addContent(p.getNamedTurnout(SlipTurnoutIcon.WEST).getName())); switch(p.getTurnoutType()){ ! case SlipTurnoutIcon.DOUBLESLIP : element.addContent(storeIcon("lowerWestToLowerEast", p.getLowerWestToLowerEastIcon(),p.getLWLEText())); element.addContent(storeIcon("upperWestToUpperEast", p.getUpperWestToUpperEastIcon(),p.getUWUEText())); element.setAttribute("turnoutType", "doubleSlip"); break; ! case SlipTurnoutIcon.SINGLESLIP: element.addContent(storeIcon("lowerWestToLowerEast", p.getLowerWestToLowerEastIcon(),p.getLWLEText())); element.setAttribute("turnoutType", "singleSlip"); element.setAttribute("singleSlipRoute", p.getSingleSlipRoute()?"upperWestToUpperEast":"lowerWestToLowerEast"); break; ! case SlipTurnoutIcon.THREEWAY: element.addContent(storeIcon("lowerWestToLowerEast", p.getLowerWestToLowerEastIcon(),p.getLWLEText())); element.setAttribute("turnoutType", "threeWay"); element.setAttribute("firstTurnoutExit", p.getSingleSlipRoute()?"upper":"lower"); break; + case SlipTurnoutIcon.SCISSOR: + if (!p.getSingleSlipRoute()){ + element.addContent(new Element("turnoutLowerEast").addContent(p.getNamedTurnout(SlipTurnoutIcon.LOWEREAST).getName())); + element.addContent(new Element("turnoutLowerWest").addContent(p.getNamedTurnout(SlipTurnoutIcon.LOWERWEST).getName())); + } + element.addContent(storeIcon("lowerWestToLowerEast", p.getLowerWestToLowerEastIcon(),p.getLWLEText())); + element.setAttribute("turnoutType", "scissor"); + } + storeCommonAttributes(p, element); ! // include contents ! element.setAttribute("tristate", p.getTristate()?"true":"false"); ! //element.setAttribute("turnoutType", p.getTurnoutType()?"double":"single"); ! ! // new style ! element.addContent(storeIcon("lowerWestToUpperEast", p.getLowerWestToUpperEastIcon(), p.getLWUEText())); ! element.addContent(storeIcon("upperWestToLowerEast", p.getUpperWestToLowerEastIcon(), p.getUWLEText())); element.addContent(super.storeIcon("unknown", p.getUnknownIcon())); element.addContent(super.storeIcon("inconsistent", p.getInconsistentIcon())); *************** *** 78,82 **** return element; } ! Element storeIcon(String elemName, NamedIcon icon, String text){ Element element = super.storeIcon(elemName, icon); --- 79,83 ---- return element; } ! Element storeIcon(String elemName, NamedIcon icon, String text){ Element element = super.storeIcon(elemName, icon); *************** *** 110,134 **** } ! String nameEast; ! try { nameEast=element.getAttribute("turnoutEast").getValue(); } catch ( NullPointerException e) { log.error("incorrect information for turnout; must use turnout name"); return; ! } ! String nameWest; ! try { nameWest=element.getAttribute("turnoutWest").getValue(); } catch ( NullPointerException e) { log.error("incorrect information for turnout; must use turnout name"); return; ! } Attribute a = element.getAttribute("turnoutType"); if (a!=null) { if (a.getValue().equals("doubleSlip")) { ! l.setTurnoutType(l.DOUBLESLIP); } else if (a.getValue().equals("singleSlip")) { ! l.setTurnoutType(l.SINGLESLIP); a = element.getAttribute("singleSlipRoute"); if ( (a==null) || ((a!=null) && a.getValue().equals("upperWestToUpperEast"))) --- 111,135 ---- } ! String nameEast = loadTurnout(element, "turnoutEast"); ! /*try { nameEast=element.getAttribute("turnoutEast").getValue(); } catch ( NullPointerException e) { log.error("incorrect information for turnout; must use turnout name"); return; ! }*/ ! String nameWest = loadTurnout(element, "turnoutWest"); ! /*try { nameWest=element.getAttribute("turnoutWest").getValue(); } catch ( NullPointerException e) { log.error("incorrect information for turnout; must use turnout name"); return; ! }*/ Attribute a = element.getAttribute("turnoutType"); if (a!=null) { if (a.getValue().equals("doubleSlip")) { ! l.setTurnoutType(SlipTurnoutIcon.DOUBLESLIP); } else if (a.getValue().equals("singleSlip")) { ! l.setTurnoutType(SlipTurnoutIcon.SINGLESLIP); a = element.getAttribute("singleSlipRoute"); if ( (a==null) || ((a!=null) && a.getValue().equals("upperWestToUpperEast"))) *************** *** 137,141 **** l.setSingleSlipRoute(false); } else if (a.getValue().equals("threeWay")) { ! l.setTurnoutType(l.THREEWAY); a = element.getAttribute("firstTurnoutExit"); if ( (a==null) || ((a!=null) && a.getValue().equals("lower"))) --- 138,142 ---- l.setSingleSlipRoute(false); } else if (a.getValue().equals("threeWay")) { ! l.setTurnoutType(SlipTurnoutIcon.THREEWAY); a = element.getAttribute("firstTurnoutExit"); if ( (a==null) || ((a!=null) && a.getValue().equals("lower"))) *************** *** 143,170 **** else l.setSingleSlipRoute(true); } } - loadTurnoutIcon("lowerWestToUpperEast", rotation, l, element); loadTurnoutIcon("upperWestToLowerEast", rotation, l, element); switch(l.getTurnoutType()){ ! case 0x00 : loadTurnoutIcon("lowerWestToLowerEast", rotation, l, element); loadTurnoutIcon("upperWestToUpperEast", rotation, l, element); break; ! case 0x02: ! loadTurnoutIcon("lowerWestToLowerEast", rotation, l, element); ! break; ! case 0x04: ! //TBC loadTurnoutIcon("lowerWestToLowerEast", rotation, l, element); ! break; } ! /*if(l.getTurnoutType()==0x00){ ! loadTurnoutIcon("lowerWestToLowerEast", rotation, l, element); ! loadTurnoutIcon("upperWestToUpperEast", rotation, l, element); ! } else { ! loadTurnoutIcon("lowerWestToLowerEast", rotation, l, element); ! }*/ loadTurnoutIcon("unknown", rotation, l, element); loadTurnoutIcon("inconsistent", rotation, l, element); --- 144,172 ---- else l.setSingleSlipRoute(true); + } else if (a.getValue().equals("scissor")){ + l.setTurnoutType(SlipTurnoutIcon.SCISSOR); + if(loadTurnout(element, "turnoutLowerWest")==null) + l.setSingleSlipRoute(true); + else{ + //loadTurnout(element, "turnoutLowerEast"); + l.setSingleSlipRoute(false); + l.setTurnout(loadTurnout(element, "turnoutLowerEast"), SlipTurnoutIcon.LOWEREAST); + l.setTurnout(loadTurnout(element, "turnoutLowerWest"), SlipTurnoutIcon.LOWERWEST); + } + } } loadTurnoutIcon("lowerWestToUpperEast", rotation, l, element); loadTurnoutIcon("upperWestToLowerEast", rotation, l, element); switch(l.getTurnoutType()){ ! case SlipTurnoutIcon.DOUBLESLIP : loadTurnoutIcon("lowerWestToLowerEast", rotation, l, element); loadTurnoutIcon("upperWestToUpperEast", rotation, l, element); break; ! default : loadTurnoutIcon("lowerWestToLowerEast", rotation, l, element); ! break; } ! loadTurnoutIcon("unknown", rotation, l, element); loadTurnoutIcon("inconsistent", rotation, l, element); *************** *** 176,181 **** l.setTristate(false); ! l.setTurnout(nameEast, true); ! l.setTurnout(nameWest, false); p.putItem(l); --- 178,183 ---- l.setTristate(false); ! l.setTurnout(nameEast, SlipTurnoutIcon.EAST); ! l.setTurnout(nameWest, SlipTurnoutIcon.WEST); p.putItem(l); *************** *** 184,187 **** --- 186,200 ---- } + private String loadTurnout(Element element, String turn){ + if (element!=null){ + Element e = element.getChild(turn); + if (e!=null) + return e.getText(); + else + return null; + } + return null; + } + @SuppressWarnings("unchecked") private void loadTurnoutIcon(String state, int rotation, SlipTurnoutIcon l, Element element){ |