001: /*
002: * SalomeTMF is a Test Management Framework
003: * Copyright (C) 2005 France Telecom R&D
004: *
005: * This library is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU Lesser General Public
007: * License as published by the Free Software Foundation; either
008: * version 2 of the License, or (at your option) any later version.
009: *
010: * This library is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * Lesser General Public License for more details.
014: *
015: * You should have received a copy of the GNU Lesser General Public
016: * License along with this library; if not, write to the Free Software
017: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
018: *
019: * @author Fayçal SOUGRATI, Vincent Pautret, Marche Mikael
020: *
021: * Contact: mikael.marche@rd.francetelecom.com
022: */
023:
024: package org.objectweb.salome_tmf.ihm.main;
025:
026: import java.awt.BorderLayout;
027: import java.awt.Container;
028: import java.awt.Dimension;
029: import java.awt.FlowLayout;
030: import java.awt.Rectangle;
031: import java.awt.event.ActionEvent;
032: import java.awt.event.ActionListener;
033: import java.util.ArrayList;
034:
035: import javax.swing.JButton;
036: import javax.swing.JDialog;
037: import javax.swing.JLabel;
038: import javax.swing.JPanel;
039: import javax.swing.JScrollPane;
040: import javax.swing.JTable;
041: import javax.swing.JTextField;
042: import javax.swing.ListSelectionModel;
043: import javax.swing.event.ListSelectionEvent;
044: import javax.swing.event.ListSelectionListener;
045:
046: import org.objectweb.salome_tmf.data.Parameter;
047: import org.objectweb.salome_tmf.ihm.languages.Language;
048: import org.objectweb.salome_tmf.ihm.main.datawrapper.DataModel;
049: import org.objectweb.salome_tmf.ihm.models.TableSorter;
050:
051: public class UsingDefinedParameterView extends JDialog {
052:
053: JTable parameterTable;
054:
055: ArrayList parameterList;
056:
057: Parameter parameter;
058:
059: String value;
060:
061: JButton okButton;
062:
063: JTextField valueTextField;
064:
065: boolean mustGiveValue;
066:
067: /**
068: *
069: * @param withValue
070: * @param singleSelection
071: */
072: public UsingDefinedParameterView(boolean withValue,
073: boolean singleSelection) {
074:
075: super (SalomeTMFContext.getInstance().ptrFrame, true);
076: parameterTable = new JTable();
077: mustGiveValue = withValue;
078:
079: TableSorter sorter = new TableSorter(DataModel
080: .getParameterTableModel());
081: parameterTable.setModel(sorter);
082: sorter.setTableHeader(parameterTable.getTableHeader());
083:
084: parameterTable
085: .setPreferredScrollableViewportSize(new Dimension(700,
086: 350));
087: if (singleSelection) {
088: parameterTable
089: .setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
090: } else {
091: parameterTable
092: .setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
093: }
094:
095: JScrollPane parametersScrollPane = new JScrollPane(
096: parameterTable);
097: parametersScrollPane.setPreferredSize(new Dimension(450, 150));
098:
099: ListSelectionModel rowSM = parameterTable.getSelectionModel();
100: rowSM.addListSelectionListener(new ListSelectionListener() {
101: public void valueChanged(ListSelectionEvent e) {
102: int selectedRow = parameterTable.getSelectedRow();
103: if (selectedRow != -1) {
104: okButton.setEnabled(true);
105: } else {
106: okButton.setEnabled(false);
107: }
108: }
109: });
110:
111: okButton = new JButton(Language.getInstance()
112: .getText("Valider"));
113: okButton.setEnabled(false);
114: okButton.addActionListener(new ActionListener() {
115: public void actionPerformed(ActionEvent e) {
116: int selectedRow = parameterTable.getSelectedRow();
117: if (mustGiveValue) {
118: if (selectedRow != -1) {
119: value = valueTextField.getText();
120: parameter = DataModel
121: .getCurrentProject()
122: .getParameterFromModel(
123: (String) parameterTable
124: .getModel().getValueAt(
125: selectedRow, 0));
126: }
127: } else {
128: parameterList = new ArrayList();
129: int[] selectedRows = parameterTable
130: .getSelectedRows();
131: for (int i = 0; i < selectedRows.length; i++) {
132: parameterList
133: .add(DataModel
134: .getCurrentProject()
135: .getParameterFromModel(
136: (String) parameterTable
137: .getModel()
138: .getValueAt(
139: selectedRows[i],
140: 0)));
141: }
142: }
143: UsingDefinedParameterView.this .dispose();
144: }
145: });
146:
147: JButton cancelButton = new JButton(Language.getInstance()
148: .getText("Annuler"));
149: cancelButton.addActionListener(new ActionListener() {
150: public void actionPerformed(ActionEvent e) {
151: UsingDefinedParameterView.this .dispose();
152: }
153: });
154:
155: valueTextField = new JTextField(30);
156: JLabel valueLabel = new JLabel(Language.getInstance().getText(
157: "Valeur_:"));
158:
159: JPanel valuePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
160: valuePanel.add(valueLabel);
161: valuePanel.add(valueTextField);
162:
163: JPanel centerPanel = new JPanel(new BorderLayout());
164: centerPanel.add(parametersScrollPane, BorderLayout.CENTER);
165: if (withValue) {
166: centerPanel.add(valuePanel, BorderLayout.SOUTH);
167: }
168:
169: JPanel buttonPanel = new JPanel(new FlowLayout(
170: FlowLayout.CENTER));
171: buttonPanel.add(okButton);
172: buttonPanel.add(cancelButton);
173:
174: Container contentPaneFrame = this .getContentPane();
175: contentPaneFrame.add(centerPanel, BorderLayout.CENTER);
176: contentPaneFrame.add(buttonPanel, BorderLayout.SOUTH);
177:
178: this .setTitle(Language.getInstance().getText(
179: "Utiliser_un_paramètre_existant"));
180: //this.setLocation(500,400);
181: /*this.pack();
182: this.setLocationRelativeTo(this.getParent());
183: this.setVisible(true);
184: */
185: centerScreen();
186: }
187:
188: void centerScreen() {
189: Dimension dim = getToolkit().getScreenSize();
190: this .pack();
191: Rectangle abounds = getBounds();
192: setLocation((dim.width - abounds.width) / 2,
193: (dim.height - abounds.height) / 2);
194: this .setVisible(true);
195: requestFocus();
196: }
197:
198: public ArrayList getParameterList() {
199: return parameterList;
200: }
201:
202: public Parameter getParameter() {
203: return parameter;
204: }
205:
206: public String getValue() {
207: return value;
208: }
209:
210: } // Fin de la classe UsingDefinedParameterView
|