001 /******************************************************************************
002 * Copyright (C) MActor Developers. All rights reserved. *
003 * ---------------------------------------------------------------------------*
004 * This file is part of MActor. *
005 * *
006 * MActor is free software; you can redistribute it and/or modify *
007 * it under the terms of the GNU General Public License as published by *
008 * the Free Software Foundation; either version 2 of the License, or *
009 * (at your option) any later version. *
010 * *
011 * MActor is distributed in the hope that it will be useful, *
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
014 * GNU General Public License for more details. *
015 * *
016 * You should have received a copy of the GNU General Public License *
017 * along with MActor; if not, write to the Free Software *
018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA *
019 ******************************************************************************/
020 package org.mactor.ui.gui.project.editors;
021
022 import java.awt.FlowLayout;
023
024 import javax.swing.JLabel;
025 import javax.swing.JTextField;
026
027 import org.dom4j.Element;
028 import org.mactor.framework.MactorException;
029 import org.mactor.ui.gui.project.ProjectNodeType;
030 import org.mactor.ui.gui.project.ProjectTreeNode;
031
032 public class TestRunNodeEditor extends AbstractNodeEditor {
033 FileNodeComboBox testsCb = new FileNodeComboBox(ProjectNodeType.T_TEST);
034 JTextField threadText = new JTextField(5);
035 DataSourceEditor dataSourceEditor = new DataSourceEditor("Data Source:", new ApplyListener() {
036 public void onApply() {
037 applyChanges();
038 }
039 });
040 Element data;
041 public TestRunNodeEditor() {
042 super(new FlowLayout());
043 SimpleFormPanel form = new SimpleFormPanel();
044 form.add(new JLabel("Test:"));
045 form.add(testsCb);
046 form.add(new JLabel("Number of Test Threads:"));
047 form.add(threadText);
048 form.add(dataSourceEditor);
049 add(form);
050 }
051 public void applyChanges() {
052 dataSourceEditor.applyChanges();
053 int tc = 1;
054 try {
055 tc = Integer.parseInt(threadText.getText());
056 } catch (Exception e) {
057 }
058 EditorUtil.setAttributeValue(data, "test_threads", tc + "");
059 EditorUtil.setAttributeValue(data, "test", testsCb.getSelectedName());
060 }
061 public void setData(ProjectTreeNode node) throws MactorException {
062 this.data = (Element) node.getModelObject();
063 dataSourceEditor.setData(data);
064 threadText.setText(EditorUtil.getAttributeValue(data, "test_threads"));
065 testsCb.setConfig(node);
066 testsCb.setSelectedName(EditorUtil.getAttributeValue(data, "test"));
067 }
068 public void setConfig(NodeEditorConfig config) {
069 dataSourceEditor.setConfig(config);
070 }
071 }