Search in sources :

Example 41 with CardLayout

use of java.awt.CardLayout in project JMRI by JMRI.

the class ListedTableFrame method initComponents.

@Override
public void initComponents() {
    actionList = new ActionJList(this);
    detailpanel = new JPanel();
    detailpanel.setLayout(new CardLayout());
    tabbedTableArray = new ArrayList<TabbedTableItem>(TabbedTableItemListArrayArray.size());
    ArrayList<TabbedTableItemListArray> removeItem = new ArrayList<TabbedTableItemListArray>(5);
    for (int x = 0; x < TabbedTableItemListArrayArray.size(); x++) {
        /* Here we add all the tables into the panel*/
        TabbedTableItemListArray item = TabbedTableItemListArrayArray.get(x);
        try {
            TabbedTableItem itemModel = new TabbedTableItem(item.getClassAsString(), item.getItemString(), item.getStandardTableModel());
            itemBeingAdded = itemModel;
            detailpanel.add(itemModel.getPanel(), itemModel.getClassAsString());
            tabbedTableArray.add(itemModel);
            itemBeingAdded.getAAClass().addToFrame(this);
        } catch (Exception ex) {
            detailpanel.add(errorPanel(item.getItemString()), item.getClassAsString());
            log.error("Error when adding " + item.getClassAsString() + " to display\n" + ex);
            ex.printStackTrace();
            removeItem.add(item);
        }
    }
    for (TabbedTableItemListArray dead : removeItem) {
        TabbedTableItemListArrayArray.remove(dead);
    }
    list = new JList<String>(new Vector<String>(getChoices()));
    listScroller = new JScrollPane(list);
    list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
    list.setLayoutOrientation(JList.VERTICAL);
    list.addMouseListener(actionList);
    buttonpanel = new JPanel();
    buttonpanel.setLayout(new BorderLayout(5, 0));
    buttonpanel.setLayout(new BoxLayout(buttonpanel, BoxLayout.Y_AXIS));
    buttonpanel.add(listScroller);
    buildMenus(tabbedTableArray.get(0));
    setTitle(tabbedTableArray.get(0).getItemString());
    cardHolder = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, buttonpanel, detailpanel);
    cardHolder.setDividerSize(8);
    if (lastdivider != 0) {
        cardHolder.setDividerLocation(lastdivider);
    } else {
        // if no specific size has been given we set it to the lists preferred width
        cardHolder.setDividerLocation(listScroller.getPreferredSize().width);
    }
    cardHolder.addPropertyChangeListener(new PropertyChangeListener() {

        @SuppressFBWarnings(value = "ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD", justification = "We only intend to use/save the last position of the Split frame")
        @Override
        public void propertyChange(PropertyChangeEvent e) {
            if (e.getPropertyName().equals("dividerLocation")) {
                lastdivider = (Integer) e.getNewValue();
            }
        }
    });
    cardHolder.setOneTouchExpandable(true);
    getContentPane().add(cardHolder);
    pack();
    actionList.selectListItem(0);
}
Also used : JScrollPane(javax.swing.JScrollPane) JPanel(javax.swing.JPanel) CardLayout(java.awt.CardLayout) PropertyChangeEvent(java.beans.PropertyChangeEvent) PropertyChangeListener(java.beans.PropertyChangeListener) BoxLayout(javax.swing.BoxLayout) ArrayList(java.util.ArrayList) SuppressFBWarnings(edu.umd.cs.findbugs.annotations.SuppressFBWarnings) BorderLayout(java.awt.BorderLayout) JSplitPane(javax.swing.JSplitPane) Vector(java.util.Vector)

Example 42 with CardLayout

use of java.awt.CardLayout in project JMRI by JMRI.

the class SpeedoConsoleFrame method initComponents.

// FIXME: Why does the if statement in this method include a direct false?
@SuppressWarnings("unused")
@Override
public void initComponents() throws Exception {
    setTitle(title());
    getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
    // What services do we have?
    dccServices = BASIC;
    if (InstanceManager.getNullableDefault(jmri.ProgrammerManager.class) != null && InstanceManager.getDefault(jmri.ProgrammerManager.class).isGlobalProgrammerAvailable()) {
        prog = InstanceManager.getDefault(jmri.ProgrammerManager.class).getGlobalProgrammer();
        dccServices |= PROG;
    }
    if (InstanceManager.getNullableDefault(jmri.ThrottleManager.class) != null) {
        // otherwise we'll send speed commands
        log.info("Using Throttle interface for profiling");
        dccServices |= THROTTLE;
    }
    if (InstanceManager.getNullableDefault(jmri.PowerManager.class) != null) {
        pm = InstanceManager.getDefault(jmri.PowerManager.class);
        pm.addPropertyChangeListener(this);
    }
    /*
         * Setup pane for basic operations
         */
    JPanel basicPane = new JPanel();
    basicPane.setLayout(new BoxLayout(basicPane, BoxLayout.Y_AXIS));
    // Scale panel to hold the scale selector
    JPanel scalePanel = new JPanel();
    scalePanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), rb.getString("SelectScale")));
    scalePanel.setLayout(new FlowLayout());
    scaleList.setToolTipText("Select the scale");
    scaleList.setSelectedIndex(defaultScale);
    selectedScale = scales[defaultScale];
    // Listen to selection of scale
    scaleList.addActionListener(new java.awt.event.ActionListener() {

        // action semantics pass an Object that must be a JComboBox<String>
        @SuppressWarnings("unchecked")
        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            JComboBox<String> cb = (JComboBox<String>) e.getSource();
            selectedScale = scales[cb.getSelectedIndex()];
        // *** check if -1 and enable text entry box
        }
    });
    scaleLabel.setText(rb.getString("Scale"));
    scaleLabel.setVisible(true);
    readerLabel.setText(rb.getString("UnknownReader"));
    readerLabel.setVisible(true);
    scalePanel.add(scaleLabel);
    scalePanel.add(scaleList);
    scalePanel.add(readerLabel);
    basicPane.add(scalePanel);
    // Mode panel for selection of profile mode
    JPanel modePanel = new JPanel();
    modePanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), rb.getString("SelectMode")));
    modePanel.setLayout(new FlowLayout());
    // Buttons to select the mode
    modeGroup.add(progButton);
    modeGroup.add(mainButton);
    progButton.setSelected(true);
    progButton.setToolTipText(rb.getString("TTProg"));
    mainButton.setToolTipText(rb.getString("TTMain"));
    modePanel.add(progButton);
    modePanel.add(mainButton);
    // Listen to change of profile mode
    progButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            if (((dccServices & PROG) == PROG)) {
                // Programmer is available to read back CVs
                readAddressButton.setEnabled(true);
                statusLabel.setText(rb.getString("StatProg"));
            }
        }
    });
    mainButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            // no programmer available to read back CVs
            readAddressButton.setEnabled(false);
            statusLabel.setText(rb.getString("StatMain"));
        }
    });
    basicPane.add(modePanel);
    // Speed panel for the dial or digital speed display
    JPanel speedPanel = new JPanel();
    speedPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), rb.getString("MeasuredSpeed")));
    speedPanel.setLayout(new BoxLayout(speedPanel, BoxLayout.X_AXIS));
    // Display Panel which is a card layout with cards to show
    // numeric or dial type speed display
    final JPanel displayCards = new JPanel();
    displayCards.setLayout(new CardLayout());
    // Numeric speed card
    JPanel numericSpeedPanel = new JPanel();
    numericSpeedPanel.setLayout(new BoxLayout(numericSpeedPanel, BoxLayout.X_AXIS));
    Font f = new Font("", Font.PLAIN, 96);
    speedTextField.setFont(f);
    speedTextField.setHorizontalAlignment(JTextField.RIGHT);
    speedTextField.setColumns(3);
    speedTextField.setText("0.0");
    speedTextField.setVisible(true);
    speedTextField.setToolTipText(rb.getString("SpeedHere"));
    numericSpeedPanel.add(speedTextField);
    // Dial speed card
    JPanel dialSpeedPanel = new JPanel();
    dialSpeedPanel.setLayout(new BoxLayout(dialSpeedPanel, BoxLayout.X_AXIS));
    dialSpeedPanel.add(speedoDialDisplay);
    speedoDialDisplay.update(0.0F);
    // Add cards to panel
    displayCards.add(dialSpeedPanel, "DIAL");
    displayCards.add(numericSpeedPanel, "NUMERIC");
    CardLayout cl = (CardLayout) displayCards.getLayout();
    cl.show(displayCards, "DIAL");
    // button panel
    JPanel buttonPanel = new JPanel();
    buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.Y_AXIS));
    speedGroup.add(mphButton);
    speedGroup.add(kphButton);
    mphButton.setSelected(true);
    mphButton.setToolTipText(rb.getString("TTDisplayMPH"));
    kphButton.setToolTipText(rb.getString("TTDisplayKPH"));
    displayGroup.add(numButton);
    displayGroup.add(dialButton);
    dialButton.setSelected(true);
    numButton.setToolTipText(rb.getString("TTDisplayNumeric"));
    dialButton.setToolTipText(rb.getString("TTDisplayDial"));
    buttonPanel.add(mphButton);
    buttonPanel.add(kphButton);
    buttonPanel.add(numButton);
    buttonPanel.add(dialButton);
    speedPanel.add(displayCards);
    speedPanel.add(buttonPanel);
    // Listen to change of units, convert current average and update display
    mphButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            profileGraphPane.setUnitsMph();
            profileGraphPane.repaint();
            speedoDialDisplay.setUnitsMph();
            speedoDialDisplay.update(currentSpeed);
            speedoDialDisplay.repaint();
        }
    });
    kphButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            profileGraphPane.setUnitsKph();
            profileGraphPane.repaint();
            speedoDialDisplay.setUnitsKph();
            speedoDialDisplay.update(currentSpeed);
            speedoDialDisplay.repaint();
        }
    });
    // Listen to change of display
    numButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            display = DisplayType.NUMERIC;
            CardLayout cl = (CardLayout) displayCards.getLayout();
            cl.show(displayCards, "NUMERIC");
        }
    });
    dialButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            display = DisplayType.DIAL;
            CardLayout cl = (CardLayout) displayCards.getLayout();
            cl.show(displayCards, "DIAL");
        }
    });
    basicPane.add(speedPanel);
    /*
         * Pane for profiling loco speed curve
         */
    JPanel profilePane = new JPanel();
    profilePane.setLayout(new BorderLayout());
    JPanel addrPane = new JPanel();
    GridBagLayout gLayout = new GridBagLayout();
    GridBagConstraints gConstraints = new GridBagConstraints();
    gConstraints.insets = new Insets(3, 3, 3, 3);
    Border addrPaneBorder = javax.swing.BorderFactory.createEtchedBorder();
    TitledBorder addrPaneTitle = javax.swing.BorderFactory.createTitledBorder(addrPaneBorder, rb.getString("LocoSelection"));
    addrPane.setLayout(gLayout);
    addrPane.setBorder(addrPaneTitle);
    setButton = new JButton(rb.getString("ButtonSet"));
    setButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            changeOfAddress();
        }
    });
    addrSelector.setAddress(null);
    rosterBox = new GlobalRosterEntryComboBox();
    rosterBox.setNonSelectedItem(rb.getString("NoLocoSelected"));
    rosterBox.setToolTipText(rb.getString("TTSelectLocoFromRoster"));
    /*
         Using an ActionListener didn't select a loco from the ComboBox properly
         so changed it to a PropertyChangeListener approach modeled on the code
         in CombinedLocoSelPane class, layoutRosterSelection method, which is known to work.
         Not sure why the ActionListener didn't work properly, but this fixes the bug
         */
    rosterBox.addPropertyChangeListener(RosterEntrySelector.SELECTED_ROSTER_ENTRIES, new PropertyChangeListener() {

        @Override
        public void propertyChange(PropertyChangeEvent pce) {
            if (!disableRosterBoxActions) {
                //Have roster box actions been disabled?
                rosterItemSelected();
            }
        }
    });
    readAddressButton.setToolTipText(rb.getString("ReadLoco"));
    addrPane.add(addrSelector.getCombinedJPanel(), gConstraints);
    addrPane.add(new JLabel(" "), gConstraints);
    addrPane.add(setButton, gConstraints);
    addrPane.add(new JLabel(" "), gConstraints);
    addrPane.add(rosterBox, gConstraints);
    addrPane.add(new JLabel(" "), gConstraints);
    addrPane.add(readAddressButton, gConstraints);
    if (((dccServices & PROG) != PROG) || (mainButton.isSelected())) {
        // No programming facility so user must enter address
        addrSelector.setEnabled(false);
        readAddressButton.setEnabled(false);
    } else {
        addrSelector.setEnabled(true);
        readAddressButton.setEnabled(true);
    }
    // Listen to read button
    readAddressButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            readAddress();
        }
    });
    profilePane.add(addrPane, BorderLayout.NORTH);
    // pane to hold the graph
    // 28 step plus step 0
    spFwd = new DccSpeedProfile(29);
    // 28 step plus step 0
    spRev = new DccSpeedProfile(29);
    // 28 step plus step 0
    spRef = new DccSpeedProfile(29);
    profileGraphPane = new GraphPane(spFwd, spRev, spRef);
    profileGraphPane.setPreferredSize(new Dimension(600, 300));
    profileGraphPane.setXLabel(rb.getString("SpeedStep"));
    profileGraphPane.setUnitsMph();
    profilePane.add(profileGraphPane, BorderLayout.CENTER);
    // pane to hold the buttons
    JPanel profileButtonPane = new JPanel();
    profileButtonPane.setLayout(new FlowLayout());
    profileButtonPane.add(trackPowerButton);
    trackPowerButton.setToolTipText(rb.getString("TTPower"));
    profileButtonPane.add(startProfileButton);
    startProfileButton.setToolTipText(rb.getString("TTStartProfile"));
    profileButtonPane.add(stopProfileButton);
    stopProfileButton.setToolTipText(rb.getString("TTStopProfile"));
    profileButtonPane.add(exportProfileButton);
    exportProfileButton.setToolTipText(rb.getString("TTSaveProfile"));
    profileButtonPane.add(printProfileButton);
    printProfileButton.setToolTipText(rb.getString("TTPrintProfile"));
    profileButtonPane.add(resetGraphButton);
    resetGraphButton.setToolTipText(rb.getString("TTResetGraph"));
    profileButtonPane.add(loadProfileButton);
    loadProfileButton.setToolTipText(rb.getString("TTLoadProfile"));
    // pane to hold the title
    JPanel profileTitlePane = new JPanel();
    profileTitlePane.setLayout(new BoxLayout(profileTitlePane, BoxLayout.X_AXIS));
    //       JTextArea profileTitle = new JTextArea("Title: ");
    //       profileTitlePane.add(profileTitle);
    printTitleText.setToolTipText(rb.getString("TTPrintTitle"));
    printTitleText.setText("Bachrus MTS-DCC profile for loco <unknown>");
    profileTitlePane.add(printTitleText);
    // pane to wrap buttons and title
    JPanel profileSouthPane = new JPanel();
    profileSouthPane.setLayout(new BoxLayout(profileSouthPane, BoxLayout.Y_AXIS));
    profileSouthPane.add(profileButtonPane);
    profileSouthPane.add(profileTitlePane);
    // Listen to track Power button
    trackPowerButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            trackPower();
        }
    });
    // Listen to start button
    startProfileButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            startProfile();
        }
    });
    // Listen to stop button
    stopProfileButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            stopProfile();
        }
    });
    // Listen to grid button
    toggleGridButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            profileGraphPane.showGrid(toggleGridButton.isSelected());
            profileGraphPane.repaint();
        }
    });
    // Listen to export button
    exportProfileButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            if (dirFwdButton.isSelected() && dirRevButton.isSelected()) {
                DccSpeedProfile[] sp = { spFwd, spRev };
                DccSpeedProfile.export(sp, profileAddress, profileGraphPane.getUnits());
            } else if (dirFwdButton.isSelected()) {
                DccSpeedProfile.export(spFwd, profileAddress, "fwd", profileGraphPane.getUnits());
            } else if (dirRevButton.isSelected()) {
                DccSpeedProfile.export(spRev, profileAddress, "rev", profileGraphPane.getUnits());
            }
        }
    });
    // Listen to print button
    printProfileButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            profileGraphPane.printProfile(printTitleText.getText());
        }
    });
    // Listen to reset graph button
    resetGraphButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            spFwd.clear();
            spRev.clear();
            spRef.clear();
            speedoDialDisplay.reset();
            profileGraphPane.repaint();
        }
    });
    // Listen to Load Reference button
    loadProfileButton.addActionListener(new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            spRef.clear();
            int response = spRef.importDccProfile(profileGraphPane.getUnits());
            if (response == -1) {
                statusLabel.setText(rb.getString("StatFileError"));
            } else {
                statusLabel.setText(rb.getString("StatFileSuccess"));
            }
            profileGraphPane.repaint();
        }
    });
    profilePane.add(profileSouthPane, BorderLayout.SOUTH);
    // Pane to hold controls
    JPanel profileControlPane = new JPanel();
    profileControlPane.setLayout(new BoxLayout(profileControlPane, BoxLayout.Y_AXIS));
    dirFwdButton.setSelected(true);
    dirFwdButton.setToolTipText(rb.getString("TTMeasFwd"));
    dirRevButton.setToolTipText(rb.getString("TTMeasRev"));
    dirFwdButton.setForeground(Color.RED);
    dirRevButton.setForeground(Color.BLUE);
    profileControlPane.add(dirFwdButton);
    profileControlPane.add(dirRevButton);
    toggleGridButton.setSelected(true);
    profileControlPane.add(toggleGridButton);
    profileGraphPane.showGrid(toggleGridButton.isSelected());
    profilePane.add(profileControlPane, BorderLayout.EAST);
    /*
         * Create the tabbed pane and add the panes
         */
    //        JTabbedPane tabbedPane = new JTabbedPane();
    JPanel tabbedPane = new JPanel();
    tabbedPane.setLayout(new BoxLayout(tabbedPane, BoxLayout.X_AXIS));
    // make basic panel
    //        tabbedPane.addTab(rb.getString("Setup"), null, basicPane, "Basic Speedo Operation");
    tabbedPane.add(basicPane);
    if (((dccServices & THROTTLE) == THROTTLE) || ((dccServices & COMMAND) == COMMAND)) {
        //            tabbedPane.addTab(rb.getString("Profile"), null, profilePane, "Profile Loco");
        tabbedPane.add(profilePane);
    }
    // connect to TrafficController
    tc = _memo.getTrafficController();
    tc.addSpeedoListener(this);
    // add help menu to window
    addHelpMenu("package.jmri.jmrix.bachrus.SpeedoConsoleFrame", true);
    // Create a wrapper with a status line and add the main content
    JPanel statusWrapper = new JPanel();
    statusWrapper.setLayout(new BorderLayout());
    JPanel statusPanel = new JPanel();
    statusPanel.setLayout(new BorderLayout());
    statusPanel.add(statusLabel, BorderLayout.WEST);
    statusPanel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
    statusWrapper.add(tabbedPane, BorderLayout.CENTER);
    statusWrapper.add(statusPanel, BorderLayout.SOUTH);
    getContentPane().add(statusWrapper);
    // pack for display
    pack();
    speedoDialDisplay.scaleFace();
}
Also used : JPanel(javax.swing.JPanel) GridBagConstraints(java.awt.GridBagConstraints) FlowLayout(java.awt.FlowLayout) ActionListener(java.awt.event.ActionListener) Insets(java.awt.Insets) GridBagLayout(java.awt.GridBagLayout) PropertyChangeListener(java.beans.PropertyChangeListener) ActionEvent(java.awt.event.ActionEvent) BoxLayout(javax.swing.BoxLayout) JButton(javax.swing.JButton) TitledBorder(javax.swing.border.TitledBorder) Font(java.awt.Font) PowerManager(jmri.PowerManager) BorderLayout(java.awt.BorderLayout) GlobalRosterEntryComboBox(jmri.jmrit.roster.swing.GlobalRosterEntryComboBox) CardLayout(java.awt.CardLayout) PropertyChangeEvent(java.beans.PropertyChangeEvent) JComboBox(javax.swing.JComboBox) JLabel(javax.swing.JLabel) Dimension(java.awt.Dimension) ActionEvent(java.awt.event.ActionEvent) ActionListener(java.awt.event.ActionListener) Border(javax.swing.border.Border) TitledBorder(javax.swing.border.TitledBorder) EtchedBorder(javax.swing.border.EtchedBorder)

Example 43 with CardLayout

use of java.awt.CardLayout in project processdash by dtuma.

the class PreferencesDialog method valueChanged.

/**
     * Called when the category is changed
     */
public void valueChanged(ListSelectionEvent e) {
    if (!e.getValueIsAdjusting()) {
        JList list = (JList) e.getSource();
        PreferencesCategory selectedCategory = (PreferencesCategory) list.getSelectedValue();
        if (!builtForms.contains(selectedCategory.getCategoryID())) {
            // The selected form has not been built yet so we create it.
            PreferencesForm form = new PreferencesForm(selectedCategory);
            form.put(DashboardContext.class, dashboardContext);
            form.addPropertyChangeListener(this);
            restartRequiredSettings.addAll(form.getRequireRestartSettings());
            preferencesPanels.add(form.getPanel(), selectedCategory.getCategoryID());
            builtForms.add(selectedCategory.getCategoryID());
        }
        CardLayout layout = (CardLayout) preferencesPanels.getLayout();
        layout.show(preferencesPanels, selectedCategory.getCategoryID());
        pack();
    }
}
Also used : CardLayout(java.awt.CardLayout) JList(javax.swing.JList)

Example 44 with CardLayout

use of java.awt.CardLayout in project cayenne by apache.

the class SelectQueryOrderingTab method initView.

protected void initView() {
    messagePanel = new JPanel(new BorderLayout());
    cardLayout = new CardLayout();
    Preferences detail = Application.getInstance().getPreferencesNode(this.getClass(), "");
    int defLocation = Application.getFrame().getHeight() / 2;
    int location = detail != null ? detail.getInt(getDividerLocationProperty(), defLocation) : defLocation;
    // As of CAY-888 #3 main pane is now a JSplitPane. Top component is a bit larger.
    JSplitPane mainPanel = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
    mainPanel.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY, this);
    mainPanel.setDividerLocation(location);
    mainPanel.setTopComponent(createEditorPanel());
    mainPanel.setBottomComponent(createSelectorPanel());
    setLayout(cardLayout);
    add(mainPanel, REAL_PANEL);
    add(messagePanel, PLACEHOLDER_PANEL);
}
Also used : JPanel(javax.swing.JPanel) CardLayout(java.awt.CardLayout) BorderLayout(java.awt.BorderLayout) Preferences(java.util.prefs.Preferences) JSplitPane(javax.swing.JSplitPane)

Example 45 with CardLayout

use of java.awt.CardLayout in project cayenne by apache.

the class PreferenceDialogView method init.

private void init() {
    split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    split.setBorder(TopBorder.create());
    list = new JList<>();
    list.setCellRenderer(new DefaultListCellRenderer() {

        @Override
        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
            super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
            setBorder(BorderFactory.createEmptyBorder(5, 8, 5, 0));
            return this;
        }
    });
    list.setFont(new JLabel().getFont().deriveFont(Font.BOLD, 12));
    detailLayout = new CardLayout();
    detailPanel = new JPanel(detailLayout);
    saveButton = new JButton("Save");
    cancelButton = new JButton("Cancel");
    // assemble
    Container leftContainer = new JPanel(new BorderLayout());
    JScrollPane scrollPane = new JScrollPane(list);
    scrollPane.setBorder(BorderFactory.createEmptyBorder());
    leftContainer.add(scrollPane);
    leftContainer.setPreferredSize(new Dimension(180, 400));
    split.setLeftComponent(leftContainer);
    split.setRightComponent(detailPanel);
    split.setDividerSize(3);
    JPanel buttons = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    buttons.add(cancelButton);
    buttons.add(saveButton);
    buttons.setBorder(TopBorder.create());
    getContentPane().setLayout(new BorderLayout());
    getContentPane().add(split, BorderLayout.CENTER);
    getContentPane().add(buttons, BorderLayout.SOUTH);
    setTitle("Edit Preferences");
}
Also used : JScrollPane(javax.swing.JScrollPane) CardLayout(java.awt.CardLayout) JPanel(javax.swing.JPanel) FlowLayout(java.awt.FlowLayout) JButton(javax.swing.JButton) JLabel(javax.swing.JLabel) Dimension(java.awt.Dimension) Container(java.awt.Container) BorderLayout(java.awt.BorderLayout) DefaultListCellRenderer(javax.swing.DefaultListCellRenderer) JSplitPane(javax.swing.JSplitPane) Component(java.awt.Component) JList(javax.swing.JList)

Aggregations

CardLayout (java.awt.CardLayout)92 JPanel (javax.swing.JPanel)37 BorderLayout (java.awt.BorderLayout)16 JLabel (javax.swing.JLabel)14 JScrollPane (javax.swing.JScrollPane)12 Dimension (java.awt.Dimension)9 GridBagLayout (java.awt.GridBagLayout)8 Insets (java.awt.Insets)8 JButton (javax.swing.JButton)7 ImageIcon (javax.swing.ImageIcon)6 ListSelectionEvent (javax.swing.event.ListSelectionEvent)6 JSplitPane (javax.swing.JSplitPane)5 ListSelectionListener (javax.swing.event.ListSelectionListener)5 FlowLayout (java.awt.FlowLayout)4 Font (java.awt.Font)4 Point (java.awt.Point)4 JList (javax.swing.JList)4 EmptyBorder (javax.swing.border.EmptyBorder)4 AWTException (java.awt.AWTException)3 GridBagConstraints (java.awt.GridBagConstraints)3