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;
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.event.ActionEvent;
031: import java.awt.event.ActionListener;
032: import java.util.ArrayList;
033:
034: import javax.swing.JButton;
035: import javax.swing.JDialog;
036: import javax.swing.JLabel;
037: import javax.swing.JPanel;
038: import javax.swing.JScrollPane;
039: import javax.swing.JTable;
040: import javax.swing.JTextField;
041: import javax.swing.ListSelectionModel;
042: import javax.swing.event.ListSelectionEvent;
043: import javax.swing.event.ListSelectionListener;
044:
045: import org.objectweb.salome_tmf.data.Parameter;
046: import org.objectweb.salome_tmf.data.ProjectData;
047: import org.objectweb.salome_tmf.ihm.datawrapper.DataModel;
048: import org.objectweb.salome_tmf.ihm.languages.Language;
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 (SalomeTMF.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 = ProjectData
121: .getCurrentProject()
122: .getParameter(
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(ProjectData
134: .getCurrentProject()
135: .getParameter(
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 .setVisible(true);
183:
184: }
185:
186: public ArrayList getParameterList() {
187: return parameterList;
188: }
189:
190: public Parameter getParameter() {
191: return parameter;
192: }
193:
194: public String getValue() {
195: return value;
196: }
197:
198: } // Fin de la classe UsingDefinedParameterView
|