public void switchLayout(int newId, boolean bLayout) { if (layoutId == newId) return; if (newId >= nviews) updateVpInfo(newId + 1); if (bSwitching) { return; } bSwitching = true; int oldId = layoutId; vpId = newId; layoutId = newId; recordCurrentLayout(); VpLayoutInfo vInfo = Util.getViewArea().getLayoutInfo(oldId); if (vInfo != null) { // save current layout info vInfo.tp_selectedTab = tp_selectedTab; vInfo.setVerticalTabName(selectedTabName); // copyCurrentLayout(vInfo); } vInfo = Util.getViewArea().getLayoutInfo(newId); putHsLayout(oldId); if (bLayout) getHsLayout(vpId); for (int i = 0; i < toolList.size(); i++) ((VToolPanel) toolList.get(i)).switchLayout(newId, bLayout); if (bLayout) setCurrentLayout(); /* if(comparePanelLayout(oldId, newId)) { setCurrentLayout(); } if ((vInfo != null) && vInfo.bAvailable && compareCurrentLayout(vInfo)) { setCurrentLayout(vInfo); } for(int i=0; i< toolList.size(); i++) ((VToolPanel) toolList.get(i)).switchLayout(newId); */ // setViewPort(newId); if (bLayout) setCurrentLayout(vInfo); updateValue(); if (bLayout) { if (pinPanel.isOpen()) { if (!pinPanel.isVisible()) pinPanel.setVisible(true); } else pinPanel.setVisible(false); } validate(); repaint(); bSwitching = false; }
/** * Gets the imageicon. If the user has a predefined icon, get that, otherwise get the varian icon. * * @return the imageicon */ protected ImageIcon getImageIcon() { ImageIcon icon = null; String strPath = WOperators.getDefIcon(); if (strPath != null) { icon = Util.getImageIcon(strPath); } if (icon == null) icon = Util.getImageIcon(WOperators.ICON); return icon; }
public boolean popupTool(String name) { JComponent obj = searchTool(name); if (obj == null) return false; if (obj instanceof VToolPanel) { if (!((VToolPanel) obj).popupTool(name)) return false; } else { if (obj instanceof PushpinIF) { PushpinIF pobj = (PushpinIF) obj; if (!pobj.isOpen()) pobj.pinPopup(true); } } bChangeTool = true; setCurrentLayout(); if (!pinPanel.isOpen()) { pinPanel.setVisible(false); bChangeTool = false; return false; } displayTool((Component) obj); VnmrjIF vif = Util.getVjIF(); if (vif != null) vif.raiseToolPanel(true); bChangeTool = false; validate(); repaint(); return true; }
public boolean popdnTool(String name) { JComponent obj = searchTool(name); if (obj == null) return false; if (obj instanceof VToolPanel) { if (!((VToolPanel) obj).popdnTool(name)) return false; } else { if (obj instanceof PushpinIF) { PushpinIF pobj = (PushpinIF) obj; pobj.pinPopup(false); } boolean bContain = containTool(obj); if (!bContain) return false; } bChangeTool = true; setCurrentLayout(); if (previous_selectedTab >= 1 && tabbedPane != null) { if (tabbedPane.getTabCount() > previous_selectedTab) tabbedPane.setSelectedIndex(previous_selectedTab); } VnmrjIF vif = Util.getVjIF(); if (vif != null) vif.raiseToolPanel(false); if (!pinPanel.isOpen()) pinPanel.setVisible(false); bChangeTool = false; updateSelectedObj(); repaint(); return true; }
public void setVisible(boolean bShow, String title) { if (bShow) { String strDir = ""; String strFreq = ""; String strTraynum = ""; m_strHelpFile = getHelpFile(title); String strSampleName = getSampleName(title); String frameBounds = getFrameBounds(title); StringTokenizer tok = new QuotedStringTokenizer(title); if (tok.hasMoreTokens()) strDir = tok.nextToken(); if (tok.hasMoreTokens()) strFreq = tok.nextToken(); if (tok.hasMoreTokens()) strTraynum = tok.nextToken(); else { try { Integer.parseInt(strDir); // if strdir is number, then strdir is empty, and the // strfreq is the number strTraynum = strFreq; strFreq = strDir; strDir = ""; } catch (Exception e) { } } try { setTitle(gettitle(strFreq)); m_lblSampleName.setText("3"); boolean bVast = isVast(strTraynum); CardLayout layout = (CardLayout) m_pnlSampleName.getLayout(); if (!bVast) { if (strSampleName == null) { strSampleName = getSampleName(strDir, strTraynum); } m_lblSampleName.setText(strSampleName); layout.show(m_pnlSampleName, OTHER); } else { m_strDir = strDir; setTrays(); layout.show(m_pnlSampleName, VAST); m_trayTimer.start(); } boolean bSample = bVast || !strSampleName.trim().equals(""); m_pnlSampleName.setVisible(bSample); m_lblLogin.setForeground(getBackground()); m_lblLogin.setVisible(false); m_passwordField.setText(""); m_passwordField.setCaretPosition(0); } catch (Exception e) { Messages.writeStackTrace(e); } setBounds(frameBounds); ExpPanel exp = Util.getActiveView(); if (exp != null) exp.waitLogin(true); } writePersistence(); setVisible(bShow); }
private void tabChanged() { if (bChangeTool) return; int index = -1; previous_selectedTab = 0; if (tabbedPane.getTabCount() > 1) { index = tabbedPane.getSelectedIndex(); Component comp = tabbedPane.getSelectedComponent(); if (comp != null && (comp instanceof PushpinIF)) { PushpinIF pobj = (PushpinIF) comp; if (!pobj.isPopup()) previous_selectedTab = index; } } updateSelectedObj(); if (index >= 0) { if (Util.getRQPanel() != null) { Util.getRQPanel().updatePopup(tabbedPane.getTitleAt(index)); } } }
public LoginBox() { super("VnmrJ Login"); dolayout("", "", ""); setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); // setVast(); DisplayOptions.addChangeListener(this); try { InetAddress inetAddress = InetAddress.getLocalHost(); m_strHostname = inetAddress.getHostName(); } catch (Exception e) { m_strHostname = "localhost"; } VNMRFrame vnmrFrame = VNMRFrame.getVNMRFrame(); Dimension size = vnmrFrame.getSize(); position = vnmrFrame.getLocationOnScreen(); AppIF appIF = Util.getAppIF(); int h = appIF.statusBar.getSize().height; width = size.width; height = size.height - h; // Allow resizing and use the previous size and position // To stop resizing, use setResizable(false); readPersistence(); // setSize(width, height); // setLocation(position); // setResizable(false); setBackgroundColor(Util.getBgColor()); m_trayTimer = new javax.swing.Timer( 6000, new ActionListener() { public void actionPerformed(ActionEvent e) { setTrays(); } }); }
public VTabbedToolPanel(SessionShare sshare, AppIF appIF) { // super( new BorderLayout() ); this.sshare = sshare; this.appIF = appIF; this.tabbedToolPanel = new JPanel(); this.pinPanel = this; this.selectedTabName = null; setPinObj(this.tabbedToolPanel); this.tabbedToolPanel.setLayout(new BorderLayout()); this.tabbedPane = new JTabbedPane(); panelName = "Tab Panel"; setTitle(panelName); setName(panelName); tabbedPane.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent e) { tabChanged(); /** * ** the following was moved to tabChanged() if(tabbedPane.getTabCount() > 1 && * Util.getRQPanel() != null) { int ind = tabbedPane.getSelectedIndex(); if(ind >= 0 && * ind < tabbedPane.getTabCount()) * Util.getRQPanel().updatePopup(tabbedPane.getTitleAt(ind)); } ********* */ } }); // Add Mouse Listener for CSH MouseAdapter ml = new CSHMouseAdapter(); tabbedPane.addMouseListener(ml); Object obj = sshare.userInfo().get("canvasnum"); if (obj != null) { Dimension dim = (Dimension) obj; nviews = (dim.height) * (dim.width); } else nviews = 1; for (int i = 0; i < nviews; i++) tp_paneInfo[i] = new Hashtable(); /* obj = sshare.userInfo().get("activeWin"); if(obj != null) { vpId = ((Integer)obj).intValue(); } else vpId = 0; */ // System.out.println("VToolPanel nviews vpId "+nviews+" "+vpId); fillHashtable(); Util.setVTabbedToolPanel(this); ParamInfo.addEditListener(this); }
protected void setTrayPresent(String strPath) { String strzone = "zones"; BufferedReader reader = WFileUtil.openReadFile(strPath); if (reader == null) return; String strLine; try { // if the zones are set to 0, then there is no tray present // set rackInfo(1,zones) 3 => tray 1 present // set rackInfo(2,zones) 0 => tray 2 not present while ((strLine = reader.readLine()) != null) { int index = strLine.indexOf(strzone); if (index < 0) continue; String strTray = strLine.substring(index - 2, index - 1); int nTray = 0; try { nTray = Integer.parseInt(strTray); } catch (Exception e) { } if (nTray <= 0) continue; int nZone = 0; try { strTray = strLine.substring(index + strzone.length() + 2, strLine.length()); nZone = Integer.parseInt(strTray); } catch (Exception e) { } Color colorbg = Color.white; String strTooltip = TRAY; if (nZone <= 0) { colorbg = Color.black; strTooltip = NOTRAY; } VBox pnlVast = m_pnlVast[nTray - 1]; pnlVast.setbackground(colorbg); pnlVast.setToolTipText(Util.getTooltipString(strTooltip)); } reader.close(); } catch (Exception e) { // e.printStackTrace(); Messages.writeStackTrace(e); } }
// Get the size of the full vnmrj frame and set the Login Panel // to that size and position. public void setDefaultSizePosition() { VNMRFrame vnmrFrame = VNMRFrame.getVNMRFrame(); Dimension size = vnmrFrame.getSize(); // Save point for later use also position = vnmrFrame.getLocationOnScreen(); AppIF appIF = Util.getAppIF(); int h = appIF.statusBar.getSize().height; // Save width and height for later use also width = size.width; height = size.height - h; // Go ahead and set the size and position setSize(width, height); setLocation(position); }
public JComponent searchTool(String name, int id) { VToolPanel vp = null; int num = keys.size(); if (num <= 0 || name == null) return null; name = Util.getLabelString(name); for (int i = 0; i < num; i++) { String key = (String) keys.get(i); JComponent obj = (JComponent) panes.get(key); if (obj instanceof VToolPanel) vp = (VToolPanel) obj; else if (name.equals(key) && obj != null) { String Value = (String) tp_paneInfo[id].get(key); if (Value.equals("yes")) { return obj; } } } return (JComponent) vp; }
protected static char[] getPassword(char[] password) { int size = password.length; int data = 0; boolean bwindows = Util.iswindows(); for (int i = 0; i < size; i++) { if (!bwindows) { if (password[i] == '`' || password[i] == '"' || password[i] == '\\') data = data + 1; } else { if (password[i] == '"') data = data + 1; else if (password[i] == ' ') data = data + 2; } } char[] password2 = new char[size + data]; int size2 = password2.length; int j = 0; for (int i = 0; i < size2; i++) { if (j >= size) break; boolean bSpace = false; if (!bwindows) { if (password[j] == '`' || password[j] == '"' || password[j] == '\\') { password2[i] = '\\'; i = i + 1; } } else { if (password[j] == '"') { password2[i] = '\\'; i = i + 1; } else if (password[j] == ' ') { password2[i] = '"'; i = i + 1; password2[i] = password[j]; i = i + 1; password2[i] = '"'; // i=i+1; bSpace = true; } } if (!bSpace) password2[i] = password[j]; j = j + 1; } return password2; }
protected void setTrayActive(String strDir) { String strTray; String strStudy; String strActive = "Active"; String cmd = "SELECT vrack_,studystatus from study WHERE (autodir=\'" + strDir + "\') AND (hostname=\'" + getHost() + "\')"; m_dbResult = null; try { m_dbResult = getdbmanager().executeQuery(cmd); } catch (Exception e) { return; } if (m_dbResult == null) return; int nTray = 0; try { while (m_dbResult.next()) { strTray = m_dbResult.getString(1); strStudy = m_dbResult.getString(2); if (strStudy != null && strStudy.equalsIgnoreCase(strActive)) { try { nTray = Integer.parseInt(strTray); } catch (Exception e) { } if (nTray > 0) { m_pnlVast[nTray - 1].setbackground(Color.blue); m_pnlVast[nTray - 1].setToolTipText(Util.getTooltipString(TRAYACTIVE)); break; } } } } catch (Exception e) { // e.printStackTrace(); Messages.writeStackTrace(e); } }
protected void enterLogin() { char[] password = m_passwordField.getPassword(); String strUser = (String) m_cmbUser.getSelectedItem(); setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); boolean blogin = WUserUtil.isOperatorNameok(strUser, false); if (blogin) { blogin = vnmrjPassword(strUser, password); if (!blogin) blogin = unixPassword(strUser, password); } if (blogin) { m_lblLogin.setForeground(Color.black); m_lblLogin.setText("Login Successful"); m_lblLogin.setVisible(true); // Get the Email column string for access to the operator data String emStr = vnmr.util.Util.getLabel("_admin_Email"); String stremail = WUserUtil.getOperatordata(strUser, emStr); // Get the Panel Level column string for access to the operator data String plStr = vnmr.util.Util.getLabel("_admin_Panel_Level"); String strPanel = WUserUtil.getOperatordata(strUser, plStr); if (stremail == null || stremail.equals("null")) stremail = ""; try { Integer.parseInt(strPanel); } catch (Exception e) { strPanel = WGlobal.PANELLEVEL; } m_trayTimer.stop(); Messages.postDebug(" Login: "******"appdir('reset','") .append(strUser) .append("','") .append(stremail) .append("',") .append(strPanel) .append(")") .toString()); exp.sendToVnmr("vnmrjcmd('util', 'bgReady')\n"); } setVisible(false); // Save the current position and size of this panel in case it // was changed Dimension size = getSize(); width = size.width; height = size.height; position = getLocation(); writePersistence(); // Call the macro to update this operator's // ExperimentSelector_operatorName.xml file // from the protocols themselves. This macro will // cause an update of the ES when it is finished // Util.getAppIF().sendToVnmr("updateExpSelector"); // I am not sure why we need to force updates since updateExpSelector // should have caused an update by writing to ES_op.xml file. // However, it works better if we do the force update. // ExpSelector.setForceUpdate(true); } else { m_lblLogin.setForeground(DisplayOptions.getColor("Error")); // m_lblLogin.setText("<HTML>Incorrect username/password <p> Please try again </HTML>"); m_lblLogin.setVisible(true); } setCursor(Cursor.getDefaultCursor()); }
private String getLocatorName() { String name = "Holding"; if (Util.isImagingUser()) name = "Study"; if (Util.isWalkupUser()) name = "Protocols"; return Util.getLabelString(name); }
protected String getHost() { if (m_strHost == null) m_strHost = Util.getHostName(); return m_strHost; }
public void showPinObj(PushpinIF pobj, boolean on) { Component comp = (Component) pobj; if (comp == null) return; Container p = comp.getParent(); if (!on) { pobj.setPopup(false, true); if (p != null && p != tabbedPane) { p.remove(comp); p.validate(); p.repaint(); } if (popupComp == comp) popupComp = null; return; } if (popupComp != null) { if (popupComp != comp) { ((PushpinIF) popupComp).setPopup(false, true); p = popupComp.getParent(); if (p != null && p != tabbedPane) { p.remove(popupComp); } } popupComp = null; } /* if (!isShowing()) { return; } */ if (comp.isShowing()) { return; } Container p2 = null; p = pinPanel.getParent(); while (p != null) { if (p instanceof JLayeredPane) p2 = p; p = p.getParent(); } if (p2 == null) return; if (!isShowing()) { VnmrjIF vif = Util.getVjIF(); vif.raiseToolPanel(on); setVisible(true); } popupComp = comp; p = p2; pobj.setPopup(true, true); /* Point pt0 = p.getLocationOnScreen(); Point pt1 = getLocationOnScreen(); */ Point pt1 = getLocation(); Dimension dim = getSize(); int y0 = (int) ((float) dim.height * pobj.getRefY()); int h = (int) ((float) dim.height * pobj.getRefH()); int x = pt1.x + 2; int y = pt1.y + y0; p.add(comp, JLayeredPane.MODAL_LAYER); comp.setBounds(x, y, dim.width, dim.height - y0); ((JComponent) p).validate(); /* p.repaint(); */ }
protected static boolean unixPassword(String strUser, char[] password) { password = getPassword(password); boolean bSu = true; String strSu; PrintWriter fout = null; if (!Util.iswindows()) { String filepath = FileUtil.savePath("USER/PERSISTENCE/passwd"); if (filepath == null) { filepath = FileUtil.savePath("USER/PERSISTENCE/tmp_passwd"); } try { fout = new PrintWriter(new FileWriter(filepath)); if (fout != null) fout.println(String.valueOf(password)); } catch (IOException er) { } finally { try { if (fout != null) fout.close(); } catch (Exception e) { } } /** * ******** String strPath = new StringBuffer().append(LOGIN).append(" ").append( * strUser).append(" \"").append(String.valueOf( password)).append("\"").toString(); ******** */ String strPath = new StringBuffer() .append(LOGIN) .append(" ") .append(strUser) .append(" \"") .append(filepath) .append("\"") .toString(); String[] cmd = {WGlobal.SHTOOLCMD, WGlobal.SHTOOLOPTION, strPath}; WMessage objMessage = WUtil.runScript(cmd, false); bSu = objMessage.isNoError(); strSu = objMessage.getMsg(); } else { String strQuotes = "\"\""; if (password.length == 0) strQuotes = "\""; String cmd = new StringBuffer() .append(LOGIN_WIN) .append(" ") .append(strUser) .append(" ") .append(strQuotes) .append(String.valueOf(password)) .append(strQuotes) .toString(); WMessage objMessage = WUtil.runScript(cmd, false); bSu = objMessage.isNoError(); strSu = objMessage.getMsg(); } if (bSu) { if (strSu != null) strSu = strSu.toLowerCase(); if (strSu == null || strSu.trim().equals("") || strSu.indexOf("killed") >= 0 || strSu.indexOf("error") >= 0) bSu = false; } return bSu; }
public void mouseClicked(MouseEvent evt) { int btn = evt.getButton(); if (btn == MouseEvent.BUTTON3) { JPopupMenu helpMenu = new JPopupMenu(); String helpLabel = Util.getLabel("CSHMenu"); JMenuItem helpMenuItem = new JMenuItem(helpLabel); helpMenuItem.setActionCommand("help"); helpMenu.add(helpMenuItem); ActionListener alMenuItem = new ActionListener() { public void actionPerformed(ActionEvent e) { String topic = ""; try { JComponent c1 = (JComponent) tabbedPane.getSelectedComponent(); // This component should contain the following embedded items. // We want m_helplink out of the top VGroup. // PushpinObj // XMLToolPanel // JScrollpane // JViewport // JPanel // VGroup // Work down to the VGroup, checking for class type along // the way. if (c1 instanceof PushpinObj) { Component c2[] = c1.getComponents(); int cnt; for (cnt = 0; cnt < c2.length; cnt++) { // The PushpinObj can have multiple items, find the one we want if (c2[cnt] instanceof XMLToolPanel) break; } if (cnt < c2.length && c2[cnt] instanceof XMLToolPanel) { Component c3[] = ((JComponent) c2[cnt]).getComponents(); if (c3[0] instanceof JScrollPane) { Component c4[] = ((JComponent) c3[0]).getComponents(); if (c4[0] instanceof JViewport) { Component c5[] = ((JComponent) c4[0]).getComponents(); if (c5[0] instanceof JPanel) { Component c6[] = ((JComponent) c5[0]).getComponents(); if (c6[0] instanceof VGroup) { // Get the helplink info from the VGroup topic = ((VGroup) c6[0]).getAttribute(VObjDef.HELPLINK); } } } } } } // If no helplink found, try the Tab's name if (topic == null || topic.length() == 0) { topic = c1.getName(); if (topic.equals("Locator")) topic = getLocatorName(); topic = topic.replace(" ", "_"); } } catch (Exception ex) { } // Get the ID and display the help content CSH_Util.displayCSHelp(topic); } }; helpMenuItem.addActionListener(alMenuItem); Point pt = evt.getPoint(); helpMenu.show(VTabbedToolPanel.this, (int) pt.getX(), (int) pt.getY()); } }
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); }
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); }