Example #1
0
  private void initGui() {
    _listScrollPane.getViewport().add(_shoutsList);
    JScrollPane inputScrollPane = new JScrollPane();
    JPanel horizontalLimit =
        new JPanel() {
          @Override
          public Dimension getPreferredSize() {
            Dimension preferredSize = super.getPreferredSize();
            preferredSize.setSize(getWidth() - 30, preferredSize.getHeight());
            return preferredSize;
          }
        };
    horizontalLimit.setLayout(new BorderLayout());
    horizontalLimit.add(_messageInputPane.getComponent());
    inputScrollPane.getViewport().add(horizontalLimit);

    JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT, _listScrollPane, inputScrollPane);
    split.setBorder(new EmptyBorder(0, 0, 0, 0));

    split.setOpaque(false);
    split.setDividerLocation((int) (getHeight() * 0.68));
    split.setDividerSize(3);
    setLayout(new BorderLayout());
    add(split, BorderLayout.CENTER);

    _shoutsList.setBorder(new EmptyBorder(0, 0, 0, 0));
    _messageInputPane.getComponent().setBorder(new EmptyBorder(0, 0, 0, 0));

    _shoutsList.addFocusListener(
        new FocusListener() {
          @Override
          public void focusGained(FocusEvent e) {
            _shoutsList.setEditable(false);
          }

          @Override
          public void focusLost(FocusEvent e) {
            _shoutsList.setEditable(true);
          }
        });
  }
  private void setGridBagLayout() {
    Container contentPane = getContentPane();
    contentPane.setLayout(new GridBagLayout());

    contentPane.add(
        _nicknameLb,
        new GridBagConstraints(
            0,
            0,
            1,
            1,
            0.0,
            0.0,
            GridBagConstraints.WEST,
            GridBagConstraints.NONE,
            new Insets(5, 5, 0, 5),
            0,
            0));

    contentPane.add(
        _nicknameTF.getComponent(),
        new GridBagConstraints(
            1,
            0,
            1,
            1,
            1.0,
            0.0,
            GridBagConstraints.CENTER,
            GridBagConstraints.HORIZONTAL,
            new Insets(5, 0, 0, 5),
            0,
            0));

    contentPane.add(
        _sealLb,
        new GridBagConstraints(
            0,
            1,
            1,
            1,
            0.0,
            0.0,
            GridBagConstraints.WEST,
            GridBagConstraints.NONE,
            new Insets(5, 5, 0, 5),
            0,
            0));

    contentPane.add(
        _sealScroll,
        new GridBagConstraints(
            0,
            2,
            5,
            1,
            0.5,
            0.5,
            GridBagConstraints.CENTER,
            GridBagConstraints.BOTH,
            new Insets(5, 5, 5, 5),
            0,
            0));

    contentPane.add(
        _inetAddressesPanel,
        new GridBagConstraints(
            0,
            3,
            2,
            1,
            1.0,
            0.2,
            GridBagConstraints.CENTER,
            GridBagConstraints.BOTH,
            new Insets(5, 5, 5, 5),
            0,
            0));

    contentPane.add(
        _friendsLb,
        new GridBagConstraints(
            0,
            3,
            2,
            1,
            1.0,
            0.2,
            GridBagConstraints.CENTER,
            GridBagConstraints.BOTH,
            new Insets(5, 5, 5, 5),
            0,
            0));

    contentPane.add(
        _friendsCb,
        new GridBagConstraints(
            0,
            3,
            2,
            1,
            1.0,
            0.2,
            GridBagConstraints.CENTER,
            GridBagConstraints.BOTH,
            new Insets(5, 5, 5, 5),
            0,
            0));

    contentPane.add(
        _acceptFriendBt,
        new GridBagConstraints(
            0,
            3,
            2,
            1,
            1.0,
            0.2,
            GridBagConstraints.CENTER,
            GridBagConstraints.BOTH,
            new Insets(5, 5, 5, 5),
            0,
            0));

    _inetAddressesPanel.setLayout(new GridBagLayout());
    _inetAddressesPanel.add(
        _inetAddressesScroll,
        new GridBagConstraints(
            0,
            1,
            12,
            1,
            1.0,
            1.0,
            GridBagConstraints.CENTER,
            GridBagConstraints.BOTH,
            new Insets(5, 5, 5, 5),
            0,
            0));

    _inetAddressesPanel.add(
        _hostLb,
        new GridBagConstraints(
            0,
            2,
            1,
            1,
            0.0,
            0.0,
            GridBagConstraints.CENTER,
            GridBagConstraints.NONE,
            new Insets(0, 5, 0, 5),
            0,
            0));

    _inetAddressesPanel.add(
        _hostTF,
        new GridBagConstraints(
            1,
            2,
            7,
            1,
            2.0,
            0.0,
            GridBagConstraints.CENTER,
            GridBagConstraints.HORIZONTAL,
            new Insets(0, 0, 0, 0),
            0,
            0));

    _inetAddressesPanel.add(
        _portLb,
        new GridBagConstraints(
            9,
            2,
            1,
            1,
            0.0,
            0.0,
            GridBagConstraints.EAST,
            GridBagConstraints.NONE,
            new Insets(0, 5, 5, 5),
            0,
            0));

    _inetAddressesPanel.add(
        _portTF,
        new GridBagConstraints(
            10,
            2,
            2,
            1,
            0.0,
            0.0,
            GridBagConstraints.CENTER,
            GridBagConstraints.HORIZONTAL,
            new Insets(0, 0, 0, 5),
            0,
            0));

    _inetAddressesPanel.add(
        _newBt,
        new GridBagConstraints(
            7,
            4,
            1,
            1,
            0.0,
            0.0,
            GridBagConstraints.EAST,
            GridBagConstraints.NONE,
            new Insets(5, 5, 5, 5),
            0,
            0));

    _inetAddressesPanel.add(
        _saveBt,
        new GridBagConstraints(
            8,
            4,
            3,
            1,
            0.0,
            0.0,
            GridBagConstraints.CENTER,
            GridBagConstraints.NONE,
            new Insets(5, 5, 5, 5),
            0,
            0));

    _inetAddressesPanel.add(
        _deleteBt,
        new GridBagConstraints(
            11,
            4,
            1,
            1,
            0.0,
            0.0,
            GridBagConstraints.EAST,
            GridBagConstraints.NONE,
            new Insets(5, 5, 5, 5),
            0,
            0));
  }
  private void initGui() {
    setTitle("Contact Info:");
    setResizable(false);

    _nicknameLb = new JLabel("Nickname:");
    _nicknameTF =
        my(ReactiveWidgetFactory.class)
            .newTextField(
                nicknameString(), nicknameSetter(), NotificationPolicy.OnEnterPressedOrLostFocus);

    _sealLb = new JLabel("Seal:");
    _sealTP =
        my(ReactiveWidgetFactory.class)
            .newTextPane(
                contactsFormattedSealString(),
                contactsSealSetter(),
                NotificationPolicy.OnEnterPressedOrLostFocus);
    _sealTP.getMainWidget().setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12));
    _sealScroll =
        new JScrollPane(
            _sealTP.getMainWidget(),
            ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);

    _friendsLb = new JLabel("Friends:");
    _friendsCb =
        new JComboBox(new String[] {"Whatsit", "Whatsisname", "Whatsername", "Whatchamacallit"});
    _acceptFriendBt = new JButton("Accept");

    _inetAddressesList =
        my(ReactiveWidgetFactory.class)
            .newList(
                new ContactInternetAddressList().addresses(),
                new LabelProvider<InternetAddress>() {
                  @Override
                  public Signal<Image> imageFor(InternetAddress element) {
                    return my(Signals.class).constant(null);
                  }

                  @Override
                  public Signal<String> textFor(InternetAddress element) {
                    return my(Signals.class)
                        .constant(element.host() + " : " + element.port().currentValue());
                  }
                });

    _inetAddressesPanel = new JPanel();
    _inetAddressesScroll = my(SynthScrolls.class).create();
    _inetAddressesScroll.getViewport().add(addresses());

    _hostLb = new JLabel("Host:");
    _hostTF = new JTextField();

    _portLb = new JLabel("Port:");
    _portTF = new JTextField();

    _newBt = new JButton("New");
    _newBt.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            newInternetAddress();
          }
        });

    _saveBt = new JButton("Save");
    _saveBt.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            saveInternetAddress();
          }
        });

    _deleteBt = new JButton("Delete");
    _deleteBt.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            delInternetAddress();
          }
        });

    setGridBagLayout();
    addListSelectionListestener();

    this.setSize(330, 310);
  }