• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *****************************************************************************
3  * Copyright (C) 2000-2004, International Business Machines Corporation and  *
4  * others. All Rights Reserved.                                              *
5  *****************************************************************************
6  */
7 package com.ibm.rbm.gui;
8 
9 import java.awt.*;
10 import java.awt.event.*;
11 
12 import javax.swing.*;
13 
14 import com.ibm.rbm.*;
15 
16 /**
17  * A dialog for creating new Resource Files
18  */
19 class ResourceCreationDialog extends JDialog {
20 	RBManager rbm;
21 	RBManagerGUI gui;
22 
23 	// Components
24 	Box mainBox = new Box(BoxLayout.Y_AXIS);
25 	Box infoBox = new Box(BoxLayout.Y_AXIS);
26 	JPanel infoPanel = new JPanel();
27 	JPanel infoTitlePanel = new JPanel();
28 	JPanel infoCommentPanel = new JPanel();
29 	JPanel infoManagerPanel = new JPanel();
30 	JPanel langPanel = new JPanel();
31 	JPanel counPanel = new JPanel();
32 	JPanel variPanel = new JPanel();
33 	JPanel buttPanel = new JPanel();
34 
35 	JLabel instructionsLabel = new JLabel("");
36 	JLabel titleLabel = new JLabel(Resources.getTranslation("dialog_file_title"));
37 	JLabel commentLabel = new JLabel(Resources.getTranslation("dialog_file_comment"));
38 	JLabel managerLabel = new JLabel(Resources.getTranslation("dialog_file_manager"));
39 	JLabel enc1Label = new JLabel(Resources.getTranslation("dialog_encoding"));
40 	JLabel enc2Label = new JLabel(Resources.getTranslation("dialog_encoding"));
41 	JLabel enc3Label = new JLabel(Resources.getTranslation("dialog_encoding"));
42 	JLabel nam1Label = new JLabel(Resources.getTranslation("dialog_name"));
43 	JLabel nam2Label = new JLabel(Resources.getTranslation("dialog_name"));
44 	JLabel nam3Label = new JLabel(Resources.getTranslation("dialog_name"));
45 
46 	JTextField titleField = new JTextField("");
47 	JTextField commentField = new JTextField("");
48 	JTextField managerField = new JTextField("");
49 	JTextField enc1Field = new JTextField("");
50 	JTextField enc2Field = new JTextField("");
51 	JTextField enc3Field = new JTextField("");
52 	JTextField nam1Field = new JTextField("");
53 	JTextField nam2Field = new JTextField("");
54 	JTextField nam3Field = new JTextField("");
55 
56 	JCheckBox copyCheckBox = new JCheckBox(Resources.getTranslation("dialog_checkbox_copy_elements"), true);
57 
58 	JButton createButton = new JButton(Resources.getTranslation("button_create"));
59 	JButton cancelButton = new JButton(Resources.getTranslation("button_cancel"));
60 
ResourceCreationDialog(RBManager rbm, JFrame frame, String title, boolean modal)61 	public ResourceCreationDialog(RBManager rbm, JFrame frame, String title, boolean modal) {
62 		super(frame, title, modal);
63 		this.gui = (RBManagerGUI)frame;
64 		this.rbm = rbm;
65 		initComponents();
66 		enableEvents(AWTEvent.KEY_EVENT_MASK);
67 	}
68 
processKeyEvent(KeyEvent ev)69 	protected void processKeyEvent(KeyEvent ev) {
70 		if (ev.getKeyCode() == KeyEvent.VK_ENTER) {
71 			boolean success = createResource();
72 			if (!success) {
73 				String alert = Resources.getTranslation("error_create_file") + " " +
74 							   Resources.getTranslation("error_try_again_file");
75 				JOptionPane.showMessageDialog(this, alert, Resources.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
76 			} else {
77 				setVisible(false);
78 				dispose();
79 			}
80 		} else if (ev.getKeyCode() == KeyEvent.VK_CANCEL) {
81 			closeWindow();
82 		}
83 	}
84 
createResource()85 	boolean createResource() {
86 		if (rbm == null) return false;
87 		String encoding = enc1Field.getText().trim();
88 		String enc2 = enc2Field.getText().trim();
89 		if (enc2 != null && !enc2.equals("")) encoding += "_" + enc2;
90 		String enc3 = enc3Field.getText().trim();
91 		if (enc3 != null && !enc3.equals("")) encoding += "_" + enc3;
92 		boolean ret = rbm.createResource(titleField.getText().trim(), commentField.getText().trim(), managerField.getText().trim(),
93 							encoding, nam1Field.getText().trim(), nam2Field.getText().trim(),
94 							nam3Field.getText().trim(), copyCheckBox.isSelected());
95 		if (ret) {
96 			gui.updateDisplayTree();
97 			gui.updateProjectTree();
98 			gui.updateProjectPanels();
99 		}
100 		return ret;
101 	}
102 
initComponents()103 	public void initComponents(){
104 		// Error check
105 		if (rbm == null) {
106 			String alert = Resources.getTranslation("error_no_bundle_for_file");
107 			JOptionPane.showMessageDialog(this, alert, Resources.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
108 			closeWindow();
109 			return;
110 		}
111 
112 		// Initialize values
113 		int tempWidth = 175;
114 		Dimension labelDim = new Dimension(tempWidth, 30);
115 		titleLabel.setPreferredSize(labelDim);
116 		commentLabel.setPreferredSize(labelDim);
117 		managerLabel.setPreferredSize(labelDim);
118 
119 		infoPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
120 															 Resources.getTranslation("dialog_file_info")));
121 		langPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
122 															 Resources.getTranslation("dialog_language")));
123 		counPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
124 															 Resources.getTranslation("dialog_country")));
125 		variPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
126 															 Resources.getTranslation("dialog_variant")));
127 
128 		titleField.setColumns(30);
129 		commentField.setColumns(30);
130 		managerField.setColumns(30);
131 
132 		enc1Field.setColumns(3);
133 		enc2Field.setColumns(3);
134 		enc3Field.setColumns(3);
135 		nam1Field.setColumns(20);
136 		nam2Field.setColumns(20);
137 		nam3Field.setColumns(20);
138 
139 		// Set up the components
140 		infoTitlePanel.add(titleLabel); infoTitlePanel.add(titleField);
141 		infoCommentPanel.add(commentLabel); infoCommentPanel.add(commentField);
142 		infoManagerPanel.add(managerLabel); infoManagerPanel.add(managerField);
143 		infoBox.add(infoTitlePanel);
144 		infoBox.add(infoCommentPanel);
145 		infoBox.add(infoManagerPanel);
146 		infoPanel.add(infoBox);
147 
148 		langPanel.add(enc1Label); langPanel.add(enc1Field); langPanel.add(nam1Label); langPanel.add(nam1Field);
149 		counPanel.add(enc2Label); counPanel.add(enc2Field); counPanel.add(nam2Label); counPanel.add(nam2Field);
150 		variPanel.add(enc3Label); variPanel.add(enc3Field); variPanel.add(nam3Label); variPanel.add(nam3Field);
151 
152 		buttPanel.add(createButton); buttPanel.add(cancelButton);
153 
154 		// Add the appropriate listeners
155 		cancelButton.addActionListener(new ActionListener() {
156 			public void actionPerformed(ActionEvent ev) {
157 				JDialog dialog = (JDialog)((JButton)ev.getSource()).getParent().getParent().getParent().getParent().getParent().getParent();
158 				dialog.setVisible(false);
159 				dialog.dispose();
160 			}
161 		});
162 
163 		createButton.addActionListener(new ActionListener() {
164 			public void actionPerformed(ActionEvent ev) {
165 				ResourceCreationDialog dialog =
166 					(ResourceCreationDialog)((JButton)ev.getSource()).getParent().getParent().getParent().getParent().getParent().getParent();
167 				boolean success = dialog.createResource();
168 				if (!success) {
169 					String alert = Resources.getTranslation("error_create_file") + " " +
170 								   Resources.getTranslation("error_try_again_file");
171 					JOptionPane.showMessageDialog(dialog, alert, Resources.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
172 				} else {
173 					dialog.setVisible(false);
174 					dialog.dispose();
175 				}
176 			}
177 		});
178 		getRootPane().setDefaultButton(createButton);
179 
180 		// Complete the component layout
181 		mainBox.removeAll();
182 		//mainBox.add(instructionsLabel);
183 		mainBox.add(infoPanel);
184 		mainBox.add(langPanel);
185 		mainBox.add(counPanel);
186 		mainBox.add(variPanel);
187 		mainBox.add(copyCheckBox);
188 		mainBox.add(buttPanel);
189 
190 		setLocation(new java.awt.Point(50, 50));
191 		getContentPane().add(mainBox, BorderLayout.CENTER);
192 		validateTree();
193 		pack();
194 		setVisible(true);
195 		//setResizable(false);
196 	}
197 
closeWindow()198 	void closeWindow() {
199 		setVisible(false);
200 		dispose();
201 	}
202 }
203 
204