| /* |
| * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. |
| * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| * |
| * This code is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License version 2 only, as |
| * published by the Free Software Foundation. |
| * |
| * This code is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| * version 2 for more details (a copy is included in the LICENSE file that |
| * accompanied this code). |
| * |
| * You should have received a copy of the GNU General Public License version |
| * 2 along with this work; if not, write to the Free Software Foundation, |
| * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| * |
| * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| * or visit www.oracle.com if you need additional information or have any |
| * questions. |
| * |
| */ |
| |
| |
| package com.sun.java.swing.ui; |
| |
| import com.sun.java.swing.action.*; |
| import java.awt.*; |
| import java.awt.event.ActionEvent; |
| import java.awt.event.ActionListener; |
| import java.util.Vector; |
| import javax.swing.*; |
| |
| // Referenced classes of package com.sun.java.swing.ui: |
| // CommonUI |
| |
| public class TabsDlg extends JDialog |
| { |
| private class ApplyListener |
| implements ActionListener |
| { |
| |
| public void actionPerformed(ActionEvent evt) |
| { |
| if(applyListener != null) |
| { |
| applyListener.actionPerformed(evt); |
| enableApplyButton(false); |
| } |
| } |
| |
| private ApplyListener() |
| { |
| } |
| |
| } |
| |
| private class CancelListener |
| implements ActionListener |
| { |
| |
| public void actionPerformed(ActionEvent evt) |
| { |
| if(cancelListener != null) |
| cancelListener.actionPerformed(evt); |
| setVisible(false); |
| } |
| |
| private CancelListener() |
| { |
| } |
| |
| } |
| |
| private class OkListener |
| implements ActionListener |
| { |
| |
| public void actionPerformed(ActionEvent evt) |
| { |
| if(okListener != null) |
| okListener.actionPerformed(evt); |
| setVisible(false); |
| } |
| |
| private OkListener() |
| { |
| } |
| |
| } |
| |
| |
| public TabsDlg(String title, Vector panels) |
| { |
| super(new JFrame(), title, true); |
| okListener = null; |
| cancelListener = null; |
| applyListener = null; |
| Container pane = getContentPane(); |
| pane.setLayout(new BorderLayout()); |
| tabsPanel = new JTabbedPane(); |
| int numPanels = panels.size(); |
| for(int i = 0; i < numPanels; i++) |
| { |
| JPanel panel = (JPanel)panels.elementAt(i); |
| tabsPanel.addTab(panel.getName(), panel); |
| } |
| |
| pane.add(tabsPanel, "Center"); |
| pane.add(createButtonPanel(), "South"); |
| pack(); |
| CommonUI.centerComponent(this); |
| } |
| |
| public static void main(String args[]) |
| { |
| JPanel p1 = new JPanel(); |
| p1.add(new JButton("One")); |
| p1.setName("One"); |
| JPanel p2 = new JPanel(); |
| p2.add(new JButton("Two")); |
| p2.setName("Two"); |
| JPanel p3 = new JPanel(); |
| p3.add(new JButton("Three")); |
| p3.setName("Three"); |
| JPanel p4 = new JPanel(); |
| p4.add(new JButton("Four")); |
| p4.setName("Four"); |
| Vector panels = new Vector(); |
| panels.addElement(p1); |
| panels.addElement(p2); |
| panels.addElement(p3); |
| panels.addElement(p4); |
| tabsDlg = new TabsDlg("Test Dialog", panels); |
| tabsDlg.addOkListener(new ActionListener() { |
| |
| public void actionPerformed(ActionEvent evt) |
| { |
| System.exit(0); |
| } |
| |
| } |
| ); |
| tabsDlg.addCancelListener(new ActionListener() { |
| |
| public void actionPerformed(ActionEvent evt) |
| { |
| System.exit(0); |
| } |
| |
| } |
| ); |
| tabsDlg.setVisible(true); |
| } |
| |
| private JPanel createButtonPanel() |
| { |
| JPanel panel = new JPanel(); |
| okAction = new OkAction(); |
| cancelAction = new CancelAction(); |
| applyAction = new ApplyAction(); |
| okAction.addActionListener(new OkListener()); |
| cancelAction.addActionListener(new CancelListener()); |
| applyAction.addActionListener(new ApplyListener()); |
| panel.add(CommonUI.createButton(okAction)); |
| panel.add(CommonUI.createButton(cancelAction)); |
| panel.add(CommonUI.createButton(applyAction)); |
| JPanel p2 = new JPanel(new BorderLayout()); |
| p2.add(panel, "Center"); |
| p2.add(new JSeparator(), "North"); |
| return p2; |
| } |
| |
| public void enableApplyButton(boolean enabled) |
| { |
| applyAction.setEnabled(enabled); |
| } |
| |
| public synchronized void addOkListener(ActionListener l) |
| { |
| okListener = AWTEventMulticaster.add(okListener, l); |
| } |
| |
| public synchronized void removeOkListener(ActionListener l) |
| { |
| okListener = AWTEventMulticaster.remove(okListener, l); |
| } |
| |
| public synchronized void addCancelListener(ActionListener l) |
| { |
| cancelListener = AWTEventMulticaster.add(cancelListener, l); |
| } |
| |
| public synchronized void removeCancelListener(ActionListener l) |
| { |
| cancelListener = AWTEventMulticaster.remove(cancelListener, l); |
| } |
| |
| public synchronized void addApplyListener(ActionListener l) |
| { |
| applyListener = AWTEventMulticaster.add(applyListener, l); |
| } |
| |
| public synchronized void removeApplyListener(ActionListener l) |
| { |
| applyListener = AWTEventMulticaster.remove(applyListener, l); |
| } |
| |
| private JTabbedPane tabsPanel; |
| private DelegateAction okAction; |
| private DelegateAction cancelAction; |
| private DelegateAction applyAction; |
| private ActionListener okListener; |
| private ActionListener cancelListener; |
| private ActionListener applyListener; |
| private static TabsDlg tabsDlg; |
| |
| |
| |
| } |