示例#1
0
  public void fill() {
    int i;
    boolean bSameFile = true;
    File fd = null;
    VToolPanel toolPanel = null;

    String toolPanelFile = FileUtil.openPath("INTERFACE/TabbedToolPanel.xml");
    if (toolPanelFile != null) fd = new File(toolPanelFile);
    if (fd != null && fd.exists()) {
      bSameFile = false;
      if (buildFile != null && buildFile.equals(toolPanelFile)) {
        if (fd.lastModified() == dateOfbuildFile) // same file
        bSameFile = true;
      }
    }
    if (bSameFile) {
      for (i = 0; i < objList.size(); i++) {
        JComponent obj = (JComponent) objList.get(i);
        if (obj != null) {
          if (obj instanceof VToolPanel) toolPanel = (VToolPanel) obj;
          else {
            if (obj instanceof StatusListenerIF) ExpPanel.addStatusListener((StatusListenerIF) obj);
            else if (obj instanceof ExpListenerIF) ExpPanel.addExpListener((ExpListenerIF) obj);
          }
        }
      }
      if (toolPanel != null) toolPanel.fill();
      return;
    }
    for (i = 0; i < objList.size(); i++) {
      for (i = 0; i < objList.size(); i++) {
        JComponent obj = (JComponent) objList.get(i);
        if (obj != null) {
          if (obj instanceof VToolPanel) toolPanel = (VToolPanel) obj;
        }
      }
    }
    if (toolPanel != null) toolPanel.clearAll();

    buildFile = toolPanelFile;
    if (fd != null) dateOfbuildFile = fd.lastModified();

    clearPanel();
    try {
      SAXParserFactory spf = SAXParserFactory.newInstance();
      spf.setValidating(false); // set to true if we get DOCTYPE
      spf.setNamespaceAware(false); // set to true with referencing
      SAXParser parser = spf.newSAXParser();
      if (toolPanelFile == null) {
        /* get VToolPanel only */
        String key = "Locator";
        PushpinIF pObj;
        Constructor c = (Constructor) getTool(key);
        Object[] vargs = new Object[1];
        vargs[0] = sshare;
        if (c != null) {
          JComponent comp = (JComponent) c.newInstance(vargs);
          if (comp instanceof VToolPanel) {
            toolList.add(comp);
          }
          tabbedToolPanel.add(comp);
          objList.add(comp);
          if (!(comp instanceof PushpinIF)) {
            pObj = new PushpinObj(comp, pinPanel);
            // pObj.setTitle("Tool Panel");
            pObj.showPushPin(false);
            pObj.showTitle(false);
            // pObj.alwaysShowTab(true);
          } else pObj = (PushpinIF) comp;
          pObj.setContainer(pinPanel);
          pObj.setSuperContainer(pinPanel);
          addTabComp(pObj);
          panes.put(key, pObj);
          // panes.put(key,comp);
          keys.add(key);
          vpInfo.add("all");
          for (i = 0; i < nviews; i++) tp_paneInfo[i].put(key, "yes");
        }
      } else {
        parser.parse(new File(toolPanelFile), new MySaxHandler());
      }

    } catch (ParserConfigurationException pce) {
      System.out.println("The underlying parser does not support the " + "requested feature(s).");
    } catch (FactoryConfigurationError fce) {
      System.out.println("Error occurred obtaining SAX Parser Factory.");
    } catch (Exception e) {
      e.printStackTrace();
    }

    for (i = 0; i < toolList.size(); i++) ((VToolPanel) toolList.get(i)).fill();
  }
示例#2
0
    public void startElement(String uri, String localName, String qName, Attributes attr) {
      // System.out.println("Start of Element '"+qName+"'");
      // int numOfAttr = attr.getLength();
      // System.out.println("   Number of Attributes is "+numOfAttr);
      // for (int i=0; i<numOfAttr; i++) {
      // System.out.println("   with attr["+i+"]='"+attr.getValue(i)+"'");
      // }
      if (!qName.equals("tool")) return;

      boolean bScroll = true;
      PushpinIF pObj = null;
      lastName = attr.getValue("name");
      String helplink = attr.getValue("helplink");
      Constructor c = (Constructor) getTool(lastName);
      Object[] vargs;
      String toolFile;
      if (lastName.equals("XMLToolPanel")) {
        lastName = attr.getValue("label");
        lastName = Util.getLabelString(lastName);
        String scroll = attr.getValue("scrollbar");
        if (scroll != null) {
          if (scroll.equalsIgnoreCase("no")) bScroll = false;
        }
        vargs = new Object[3];
        vargs[0] = sshare;
        vargs[1] = lastName;
        toolFile = attr.getValue("file");
        vargs[2] = toolFile;
        String f = "LAYOUT" + File.separator + "toolPanels" + File.separator + toolFile;
        toolFile = FileUtil.openPath(f);
        if (toolFile == null) return;

      } else {
        vargs = new Object[1];
        vargs[0] = sshare;
      }
      if (c != null) {
        try {
          lastComp = (JComponent) c.newInstance(vargs);
          if (lastComp instanceof VToolPanel) {
            toolList.add(lastComp);
            pObj = (PushpinIF) lastComp;
          }
          objList.add(lastComp);
        } catch (Exception e) {
          lastComp = new JLabel(lastName);
        }
      } else {
        lastComp = new JLabel(lastName);
      }

      String vps = attr.getValue("viewport");

      if (lastComp != null && (lastComp instanceof XMLToolPanel))
        ((XMLToolPanel) lastComp).setScrollAble(bScroll);
      if (pObj == null) {
        PushpinObj nObj = new PushpinObj(lastComp, pinPanel);
        pObj = nObj;
        pObj.setTitle(lastName);
        pObj.showPushPin(true);
        pObj.showTitle(true);
        pObj.setTabOnTop(true);
      }
      pObj.setName(lastName);
      addTabComp(pObj);
      pObj.setContainer(pinPanel);
      pObj.setSuperContainer(pinPanel);
      panes.put(lastName, pObj);
      // panes.put(lastName, lastComp);
      keys.add(lastName);
      vpInfo.add(vps);
    }