/** * Builds the UI component hosting the buttons. * * @return See above. */ private JPanel buildLogin() { // server information JPanel p = new JPanel(); p.setOpaque(false); p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS)); p.add(serverTextPane); p.add(connectionSpeedText); JToolBar bar = new JToolBar(); bar.setOpaque(false); bar.setBorder(null); bar.setFloatable(false); if (UIUtilities.isWindowsOS()) { bar.add(Box.createHorizontalStrut(5)); bar.add(encryptedButton); bar.add(Box.createHorizontalStrut(5)); bar.add(configButton); } else { bar.add(encryptedButton); bar.add(configButton); } JPanel row = new JPanel(); row.setOpaque(false); row.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0)); row.add(p); row.add(bar); mainPanel.add(row); components.add(row); // user name JPanel group = new JPanel(); group.setOpaque(false); group.setLayout(new BoxLayout(group, BoxLayout.Y_AXIS)); JTextPane l = UIUtilities.buildTextPane(USER_TEXT, TEXT_COLOR); row = new JPanel(); row.setOpaque(false); row.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0)); row.add(l); row.add(user); group.add(row); // password l = UIUtilities.buildTextPane(" " + PASSWORD_TEXT, TEXT_COLOR); row = new JPanel(); row.setOpaque(false); row.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0)); row.add(l); row.add(pass); group.add(row); mainPanel.add(group); components.add(group); // controls JPanel controls = new JPanel(); controls.setOpaque(false); controls.add(Box.createHorizontalGlue()); controls.add(login); controls.add(cancel); p = UIUtilities.buildComponentPanelCenter(controls, 0, 0, false); mainPanel.add(p); components.add(p); return mainPanel; }