Пример #1
0
  /**
   * Create an AddeChooser associated with an IdvChooser
   *
   * @param mgr The chooser manager
   * @param root The chooser.xml node
   */
  public AddeChooser(IdvChooserManager mgr, Element root) {

    super(mgr, root);
    simpleMode = !getProperty(IdvChooser.ATTR_SHOWDETAILS, true);
    this.addeServers = getIdv().getIdvChooserManager().getAddeServers(getGroupType());

    serverSelector =
        new JComboBox(new Vector(addeServers)) {
          public void paint(Graphics g) {
            if (myServerTimeStamp != serverTimeStamp) {
              myServerTimeStamp = serverTimeStamp;
              Misc.runInABit(10, AddeChooser.this, "updateServerList", null);
            }
            super.paint(g);
          }
        };
    serverSelector.setEditable(true);
    serverSelector.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent e) {
            if (!ignoreStateChangedEvents) {
              setGroups();
            }
          }
        });

    serverSelector
        .getEditor()
        .getEditorComponent()
        .addMouseListener(
            new MouseAdapter() {
              public void mouseReleased(MouseEvent e) {
                if (!SwingUtilities.isRightMouseButton(e)) {
                  return;
                }
                AddeServer server = getAddeServer();
                if (server == null) {
                  return;
                }
                List items = new ArrayList();
                if (MARK_AS_INACTIVE || server.getIsLocal()) {
                  items.add(
                      GuiUtils.makeMenuItem(
                          "Remove local server: " + server.getName(),
                          AddeChooser.this,
                          "removeServer",
                          server));
                } else {
                  items.add(new JMenuItem("Not a local server"));
                }
                JPopupMenu popup = GuiUtils.makePopupMenu(items);
                popup.show(serverSelector, e.getX(), e.getY());
              }
            });

    groupSelector = new JComboBox();
    groupSelector.setToolTipText("Right click to remove group");
    groupSelector.setEditable(true);
    groupSelector
        .getEditor()
        .getEditorComponent()
        .addMouseListener(
            new MouseAdapter() {
              public void mouseReleased(MouseEvent e) {
                if (SwingUtilities.isRightMouseButton(e)) {
                  Object selected = groupSelector.getSelectedItem();
                  if ((selected == null) || !(selected instanceof AddeServer.Group)) {
                    return;
                  }
                  AddeServer.Group group = (AddeServer.Group) selected;
                  List items = new ArrayList();
                  if (MARK_AS_INACTIVE || group.getIsLocal()) {
                    items.add(
                        GuiUtils.makeMenuItem(
                            "Remove local group: " + group.getName(),
                            AddeChooser.this,
                            "removeGroup",
                            group));
                  }

                  final AddeServer server = getAddeServer();

                  if (server != null) {
                    List groups = server.getGroupsWithType(getGroupType(), false);
                    for (int i = 0; i < groups.size(); i++) {
                      final AddeServer.Group inactiveGroup = (AddeServer.Group) groups.get(i);
                      if (inactiveGroup.getActive()) {
                        continue;
                      }
                      JMenuItem mi = new JMenuItem("Re-activate group: " + inactiveGroup);
                      items.add(mi);
                      mi.addActionListener(
                          new ActionListener() {
                            public void actionPerformed(ActionEvent ae) {
                              getIdv()
                                  .getIdvChooserManager()
                                  .activateAddeServerGroup(server, inactiveGroup);
                              setGroups();
                              groupSelector.setSelectedItem(inactiveGroup);
                            }
                          });
                    }
                  }

                  if (items.size() == 0) {
                    items.add(new JMenuItem("Not a local group"));
                  }

                  JPopupMenu popup = GuiUtils.makePopupMenu(items);
                  popup.show(groupSelector, e.getX(), e.getY());
                }
              }
            });
    loadServerState();
    setGroups();
  }
Пример #2
0
  protected void dolayout(String strDir, String strFreq, String strTraynum) {
    // TopBar
    String strTitle = gettitle(strFreq);
    Color color = DisplayOptions.getColor("Heading3");

    // Center Panel
    JPanel panelCenter = new JPanel(new GridBagLayout());
    GridBagConstraints gbc =
        new GridBagConstraints(
            0,
            0,
            1,
            1,
            0.2,
            0,
            GridBagConstraints.WEST,
            GridBagConstraints.HORIZONTAL,
            new Insets(0, 0, 0, 0),
            0,
            0);
    ImageIcon icon = getImageIcon();
    // panelCenter.add(new JLabel(icon));
    addComp(panelCenter, new JLabel(icon), gbc, 0, 0);
    strTitle = getSampleName(strDir, strTraynum);
    m_lblSampleName = new JLabel(strTitle);
    if (strTitle == null || !strTitle.trim().equals("")) strTitle = "3";
    Font font = m_lblSampleName.getFont();
    font = DisplayOptions.getFont(font.getName(), Font.BOLD, 300);
    m_lblSampleName.setFont(font);
    m_lblSampleName.setForeground(color);
    // panelCenter.add(m_lblSampleName);
    m_pnlSampleName = new JPanel(new CardLayout());
    m_pnlSampleName.add(m_lblSampleName, OTHER);
    addComp(panelCenter, m_pnlSampleName, gbc, 1, 0);
    m_pnlSampleName.setVisible(false);
    m_pnlTrays = new JPanel(new GridLayout(1, 0));
    // Vast panels
    VBox pnlVast1 = new VBox(m_pnlTrays, "1");
    m_pnlTrays.add(pnlVast1);
    m_pnlVast[0] = pnlVast1;
    VBox pnlVast2 = new VBox(m_pnlTrays, "2");
    m_pnlTrays.add(pnlVast2);
    m_pnlVast[1] = pnlVast2;
    VBox pnlVast3 = new VBox(m_pnlTrays, "3");
    m_pnlTrays.add(pnlVast3);
    m_pnlVast[2] = pnlVast3;
    VBox pnlVast4 = new VBox(m_pnlTrays, "4");
    m_pnlTrays.add(pnlVast4);
    m_pnlVast[3] = pnlVast4;
    VBox pnlVast5 = new VBox(m_pnlTrays, "5");
    m_pnlTrays.add(pnlVast5);
    m_pnlVast[4] = pnlVast5;
    m_pnlSampleName.add(m_pnlTrays, VAST);

    // Login Panel
    JPanel panelThird = new JPanel(new BorderLayout());
    JPanel panelLogin = new JPanel(new GridBagLayout());
    gbc = new GridBagConstraints();
    panelThird.add(panelLogin);
    Object[] aStrUser = getOperators();
    m_cmbUser = new JComboBox(aStrUser);
    BasicComboBoxRenderer renderer = new BasicComboBoxRenderer();
    m_cmbUser.setRenderer(renderer);
    m_cmbUser.setEditable(true);
    m_passwordField = new JPasswordField();
    // *Warning, working around a Java problem*
    // When we went to the T3500 running Redhat 5.3, the JPasswordField
    // fields sometimes does not allow ANY entry of characters.  Setting
    // the enableInputMethods() to true fixed this problem.  There are
    // comments that indicate that this could cause the typed characters
    // to be visible.  I have not found that to be a problem.
    // This may not be required in the future, or could cause characters
    // to become visible in the future if Java changes it's code.
    // GRS  8/20/09
    m_passwordField.enableInputMethods(true);

    m_lblLogin = new VLoginLabel(null, "Incorrect username/password \n Please try again ", 0, 0);
    m_lblLogin.setVisible(false);
    okButton.setActionCommand("enter");
    okButton.addActionListener(this);
    cancelButton.setActionCommand("cancel");
    cancelButton.addActionListener(this);
    helpButton.setActionCommand("help");
    helpButton.addActionListener(this);
    m_passwordField.addKeyListener(
        new KeyAdapter() {
          public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_ENTER) enterLogin();
          }
        });

    // These is some wierd problem such that sometimes, the vnmrj command
    // area gets the focus and these items in the login box do not get
    // the focus.  Even clicking in these items does not bring focus to
    // them.  Issuing requestFocus() does not bring focus to them.
    // I can however, determing if either the operator entry box or
    // the password box has focus and if neither does, I can unshow and
    // reshow the panel and that fixes the focus.  So, I have added this
    // to the mouseClicked action.  If neither has focus, it will
    // take focus with setVisible false then true.
    comboTextField = m_cmbUser.getEditor().getEditorComponent();
    m_passwordField.addMouseListener(this);
    comboTextField.addMouseListener(this);

    m_lblUsername = new JLabel(Util.getLabel("_Operator"));
    addComp(panelLogin, m_lblUsername, gbc, 0, 0);
    addComp(panelLogin, m_cmbUser, gbc, 1, 0);
    m_lblPassword = new JLabel(Util.getLabel("_Password"));
    addComp(panelLogin, m_lblPassword, gbc, 0, 1);
    addComp(panelLogin, m_passwordField, gbc, 1, 1);
    gbc.fill = GridBagConstraints.HORIZONTAL;
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbc.gridheight = GridBagConstraints.REMAINDER;
    addComp(panelLogin, m_lblLogin, gbc, 2, 0);
    setPref();

    Container container = getContentPane();
    JPanel panelLoginBox = new JPanel(new BorderLayout());
    panelLoginBox.add(panelCenter, BorderLayout.CENTER);
    panelLoginBox.add(panelThird, BorderLayout.SOUTH);
    container.add(panelLoginBox, BorderLayout.CENTER);
  }