00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 package org.objectweb.proactive.ext.scilab.gui;
00032 import java.awt.BorderLayout;
00033 import java.awt.FlowLayout;
00034 import java.awt.event.ActionEvent;
00035 import java.awt.event.ActionListener;
00036 import java.awt.event.WindowAdapter;
00037 import java.awt.event.WindowEvent;
00038 import java.io.File;
00039
00040 import javax.swing.BorderFactory;
00041 import javax.swing.ComboBoxModel;
00042 import javax.swing.DefaultComboBoxModel;
00043 import javax.swing.JButton;
00044 import javax.swing.JComboBox;
00045 import javax.swing.JFileChooser;
00046 import javax.swing.JFrame;
00047 import javax.swing.JLabel;
00048 import javax.swing.JPanel;
00049 import javax.swing.JScrollPane;
00050 import javax.swing.JTextArea;
00051 import javax.swing.JTextField;
00052 import javax.swing.filechooser.FileFilter;
00053
00054 public class DialogTask extends javax.swing.JDialog {
00055 private JPanel pnlPath;
00056 private JLabel lblPath;
00057 private JTextField txtOutParam;
00058 private JTextField txtPath;
00059 private JLabel lblPriority;
00060 private JLabel lblOutParam;
00061 private JComboBox cmbPriority;
00062 private JPanel pnlTaskPriority;
00063 private JPanel pnlPathSouth;
00064 private JPanel pnlPathNorth;
00065 private JFileChooser chooserScript;
00066 private JButton btnCancel;
00067 private JButton btnStart;
00068 private JTextArea txtInit;
00069 private JScrollPane scrollInit;
00070 private JPanel pnlValid;
00071 private JPanel pnlTask;
00072 private JPanel pnlMain;
00073 private JButton btnPath;
00074 private JPanel pnlTaskSouth;
00075 private JPanel pnlInit;
00076
00077 public static final int VALIDATE = 1,
00078 CANCEL = 0;
00079
00080 private int state;
00081
00082 public DialogTask(JFrame frame) {
00083 super(frame);
00084 initGUI();
00085 }
00086
00087 private void initGUI() {
00088 try {
00089 {
00090 chooserScript = new JFileChooser();
00091 FileFilter filter = new FileFilter(){
00092 public boolean accept(File f){
00093
00094 if(f == null){
00095 return false;
00096 }
00097
00098 if (f.isDirectory()) {
00099 return true;
00100 }
00101
00102 return f.getName().endsWith(".sci") || f.getName().endsWith(".sce");
00103 }
00104
00105 public String getDescription() {
00106 return "Scilab Filter";
00107 }
00108 };
00109
00110 chooserScript.setFileFilter(filter);
00111 }
00112
00113 {
00114 pnlMain = (JPanel) getContentPane();
00115 BorderLayout pnlMainLayout = new BorderLayout();
00116 pnlMain.setLayout(pnlMainLayout);
00117
00118 pnlMain.setPreferredSize(new java.awt.Dimension(510, 330));
00119 {
00120 pnlTask = new JPanel();
00121 BorderLayout pnlTaskLayout = new BorderLayout();
00122 pnlTask.setLayout(pnlTaskLayout);
00123 pnlMain.add(pnlTask, BorderLayout.CENTER);
00124 {
00125 pnlInit = new JPanel();
00126 pnlTask.add(pnlInit, BorderLayout.CENTER);
00127 BorderLayout pnlInitLayout = new BorderLayout();
00128 pnlInit.setLayout(pnlInitLayout);
00129 pnlInit.setPreferredSize(new java.awt.Dimension(396, 228));
00130 pnlInit.setSize(393, 23);
00131 pnlInit.setBorder(BorderFactory.createTitledBorder("Initialize Script"));
00132 {
00133 scrollInit = new JScrollPane();
00134 pnlInit.add(scrollInit, BorderLayout.CENTER);
00135 scrollInit.setPreferredSize(new java.awt.Dimension(
00136 502,
00137 203));
00138 {
00139 txtInit = new JTextArea();
00140 scrollInit.setViewportView(txtInit);
00141 }
00142 }
00143 }
00144 {
00145 pnlTaskSouth = new JPanel();
00146 pnlTask.add(pnlTaskSouth, BorderLayout.SOUTH);
00147 BorderLayout pnlOutParamLayout = new BorderLayout();
00148 pnlOutParamLayout.setHgap(5);
00149 pnlTaskSouth.setLayout(pnlOutParamLayout);
00150 pnlTaskSouth.setPreferredSize(new java.awt.Dimension(512, 31));
00151 pnlTaskSouth.setBorder(BorderFactory.createTitledBorder(""));
00152 {
00153 txtOutParam = new JTextField();
00154 pnlTaskSouth.add(txtOutParam, BorderLayout.CENTER);
00155 txtOutParam.setPreferredSize(new java.awt.Dimension(213, 15));
00156 }
00157 {
00158 pnlTaskPriority = new JPanel();
00159 BorderLayout pnlTaskPriorityLayout = new BorderLayout();
00160 pnlTaskPriorityLayout.setHgap(5);
00161 pnlTaskPriority.setLayout(pnlTaskPriorityLayout);
00162 pnlTaskSouth.add(pnlTaskPriority, BorderLayout.EAST);
00163 {
00164 lblPriority = new JLabel();
00165 pnlTaskPriority.add(lblPriority, BorderLayout.WEST);
00166 lblPriority.setText("Priority Task:");
00167 lblPriority.setPreferredSize(new java.awt.Dimension(84, 16));
00168 }
00169 {
00170 ComboBoxModel cmbPriorityModel = new DefaultComboBoxModel(
00171 new String[] { "Low", "Normal", "High" });
00172 cmbPriority = new JComboBox();
00173 pnlTaskPriority.add(cmbPriority, BorderLayout.CENTER);
00174 cmbPriority.setModel(cmbPriorityModel);
00175 cmbPriority.setPreferredSize(new java.awt.Dimension(79, 19));
00176 cmbPriority.setSelectedIndex(1);
00177 }
00178 }
00179 {
00180 lblOutParam = new JLabel();
00181 pnlTaskSouth.add(lblOutParam, BorderLayout.WEST);
00182 lblOutParam.setText("Out Parameters:");
00183 lblOutParam
00184 .setPreferredSize(new java.awt.Dimension(
00185 111,
00186 17));
00187 }
00188 }
00189 {
00190 pnlPath = new JPanel();
00191 pnlTask.add(pnlPath, BorderLayout.NORTH);
00192 BorderLayout pnlPathLayout = new BorderLayout();
00193 pnlPathLayout.setHgap(5);
00194 pnlPath.setLayout(pnlPathLayout);
00195 pnlPath.setPreferredSize(new java.awt.Dimension(512, 40));
00196 {
00197 lblPath = new JLabel();
00198 pnlPath.add(lblPath, BorderLayout.WEST);
00199 lblPath.setText("Select Script:");
00200 lblPath.setPreferredSize(new java.awt.Dimension(81, 14));
00201 }
00202 {
00203 txtPath = new JTextField();
00204 pnlPath.add(txtPath, BorderLayout.CENTER);
00205 txtPath.setPreferredSize(new java.awt.Dimension(325, 22));
00206 txtPath.setSize(72, 22);
00207 }
00208 {
00209 btnPath = new JButton();
00210 pnlPath.add(btnPath, BorderLayout.EAST);
00211 btnPath.setText("Browse");
00212 btnPath.setPreferredSize(new java.awt.Dimension(85, 22));
00213 btnPath.setSize(72, 22);
00214 btnPath.addActionListener(new ActionListener() {
00215 public void actionPerformed(ActionEvent evt) {
00216 btnPathActionPerformed(evt);
00217 }
00218 });
00219 }
00220 {
00221 pnlPathNorth = new JPanel();
00222 pnlPath.add(pnlPathNorth, BorderLayout.NORTH);
00223 }
00224 {
00225 pnlPathSouth = new JPanel();
00226 pnlPath.add(pnlPathSouth, BorderLayout.SOUTH);
00227 }
00228 }
00229 }
00230 {
00231 pnlValid = new JPanel();
00232 FlowLayout pnlValidLayout = new FlowLayout();
00233 pnlValidLayout.setAlignment(FlowLayout.RIGHT);
00234 pnlValid.setLayout(pnlValidLayout);
00235 pnlMain.add(pnlValid, BorderLayout.SOUTH);
00236 pnlValid.setPreferredSize(new java.awt.Dimension(512, 33));
00237 {
00238 btnCancel = new JButton();
00239 pnlValid.add(btnCancel);
00240 btnCancel.setText("Cancel");
00241 btnCancel.setPreferredSize(new java.awt.Dimension(
00242 75,
00243 22));
00244 btnCancel.addActionListener(new ActionListener() {
00245 public void actionPerformed(ActionEvent evt) {
00246 btnCancelActionPerformed(evt);
00247 }
00248 });
00249 }
00250 {
00251 btnStart = new JButton();
00252 pnlValid.add(btnStart);
00253 btnStart.setText("Start");
00254 btnStart
00255 .setPreferredSize(new java.awt.Dimension(75, 22));
00256 btnStart.setToolTipText("Create et launch the defined task");
00257 btnStart.addActionListener(new ActionListener() {
00258 public void actionPerformed(ActionEvent evt) {
00259 btnStartActionPerformed(evt);
00260 }
00261 });
00262 }
00263 }
00264 }
00265
00266 this.addWindowListener(new WindowAdapter() {
00267 public void windowClosing(WindowEvent e) {
00268 state = DialogTask.CANCEL;
00269 }
00270 });
00271
00272 this.setTitle("Open Scilab Task");
00273 this.setSize(520, 354);
00274 } catch (Exception e) {
00275 e.printStackTrace();
00276 }
00277 }
00278
00279 private void btnPathActionPerformed(ActionEvent evt) {
00280
00281 if (this.chooserScript.showOpenDialog(this) != JFileChooser.APPROVE_OPTION) {
00282 return;
00283 }
00284
00285 this.txtPath.setText(this.chooserScript.getSelectedFile().getAbsolutePath());
00286 }
00287
00288 private void btnCancelActionPerformed(ActionEvent evt) {
00289
00290 this.state = DialogTask.CANCEL;
00291 this.setVisible(false);
00292 }
00293
00294 private void btnStartActionPerformed(ActionEvent evt) {
00295 state = DialogTask.VALIDATE;
00296 this.setVisible(false);
00297 }
00298
00299 public int getState() {
00300 return state;
00301 }
00302
00303 public String getPath(){
00304 return this.txtPath.getText();
00305 }
00306
00307 public String getJobInit(){
00308 return this.txtInit.getText();
00309 }
00310
00311 public String[] getDataOut(){
00312 return this.txtOutParam.getText().split(";");
00313 }
00314
00315 public void setState(int state) {
00316 this.state = state;
00317 }
00318
00319 public String getTaskPriority(){
00320 return (String) this.cmbPriority.getSelectedItem();
00321 }
00322 }