/********************************************************* begin of preamble
**
** Copyright (C) 2003-2010 Software- und Organisations-Service GmbH.
** All rights reserved.
**
** This file may be used under the terms of either the
**
** GNU General Public License version 2.0 (GPL)
**
** as published by the Free Software Foundation
** http://www.gnu.org/licenses/gpl-2.0.txt and appearing in the file
** LICENSE.GPL included in the packaging of this file.
**
** or the
**
** Agreement for Purchase and Licensing
**
** as offered by Software- und Organisations-Service GmbH
** in the respective terms of supply that ship with this file.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
** THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
** BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
** POSSIBILITY OF SUCH DAMAGE.
********************************************************** end of preamble*/
package sos.scheduler.editor.conf.forms;
import java.util.List;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.FocusAdapter;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.Text;
import org.jdom.Element;
import org.jdom.xpath.XPath;
import com.swtdesigner.SWTResourceManager;
import sos.scheduler.editor.app.ContextMenu;
import sos.scheduler.editor.app.Editor;
import sos.scheduler.editor.app.ErrorLog;
import sos.scheduler.editor.app.IOUtils;
import sos.scheduler.editor.app.IUnsaved;
import sos.scheduler.editor.app.IUpdateLanguage;
import sos.scheduler.editor.app.MainWindow;
import sos.scheduler.editor.app.MergeAllXMLinDirectory;
import sos.scheduler.editor.app.Messages;
import sos.scheduler.editor.app.ResourceManager;
import sos.scheduler.editor.app.Utils;
import sos.scheduler.editor.conf.ISchedulerUpdate;
import sos.scheduler.editor.conf.SchedulerDom;
import sos.scheduler.editor.conf.listeners.DetailsListener;
import sos.scheduler.editor.conf.listeners.JobChainListener;
public class JobChainNodesForm extends Composite implements IUnsaved, IUpdateLanguage {
private Button dumm2 = null;
private Button bNewNode = null;
private Table tNodes = null;
private Button bApplyNode = null;
private Text tMoveTo = null;
private Button bRemoveFile = null;
private Combo cErrorState = null;
private Label label9 = null;
private Combo cNextState = null;
private Label label8 = null;
private Button bFileSink = null;
private Button bEndNode = null;
private Button bFullNode = null;
private Composite cType = null;
private Combo cJob = null;
private Label label7 = null;
private Text tState = null;
private Label label6 = null;
private static final String GROUP_NODES_TITLE = "Chain Nodes";
private static final String GROUP_FILEORDERSOURCE_TITLE = "File Order Sources";
private Group gFileOrderSource = null;
private JobChainListener listener = null;
private Group jobChainGroup = null;
private Button bNewFileOrderSource = null;
private Button bRemoveFileOrderSource = null;
private Button bApplyFileOrderSource = null;
private Text tDirectory = null;
private Text tDelayAfterError = null;
private Text tMax = null;
private Text tNextState = null;
private Text tRegex = null;
private Text tRepeat = null;
private Table tFileOrderSource = null;
private Button bRemoveNode = null;
private Group gNodes = null;
private Text tDelay = null;
private Button butImportJob = null;
private boolean refresh = false;
private Button butDetailsJob = null;
private Button butBrowse = null;
private ISchedulerUpdate update = null;
private Combo cOnError = null;
private Button butUp = null;
private Button butDown = null;
private SchedulerDom dom = null;
private Button butGoto = null;
private Button butInsert = null;
private boolean isInsert = false;
private Button reorderButton = null;
private Button butAddMissingNodes = null;
/**Hilfsvariable: Wenn Parameter Formular ge�ffnet wurde muss �berpr�ft werden, ob der Checkbox in der Tabelle - State gesetzt werden soll.*/
private boolean checkParameter = false;
//private Text txtStateText = null;
//private Composite composite_2 = null;
public JobChainNodesForm(Composite parent, int style, SchedulerDom dom_, Element jobChain) {
super(parent, style);
dom = dom_;
listener = new JobChainListener(dom, jobChain);
initialize();
setToolTipText();
boolean existChainNodes = check();
jobChainGroup.setEnabled(existChainNodes);
bNewNode.setEnabled(existChainNodes);
if(existChainNodes)
fillChain(false, false);
this.setEnabled(Utils.isElementEnabled("job_chain", dom, jobChain));
}
public void apply() {
if (bApplyNode.isEnabled())
applyNode();
}
public boolean isUnsaved() {
return bApplyNode.isEnabled();
}
private void initialize() {
this.setLayout(new FillLayout());
createGroup();
setSize(new org.eclipse.swt.graphics.Point(676, 464));
}
/**
* This method initializes group
*/
private void createGroup() {
try {
jobChainGroup = new Group(this, SWT.NONE);
final GridLayout gridLayout = new GridLayout();
jobChainGroup.setLayout(gridLayout);
gNodes = new Group(jobChainGroup, SWT.NONE);
gNodes.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
gNodes.setText("Chain Node");
final GridLayout gridLayout_3 = new GridLayout();
gridLayout_3.marginBottom = 5;
gridLayout_3.marginTop = 5;
gridLayout_3.numColumns = 6;
gNodes.setLayout(gridLayout_3);
label6 = new Label(gNodes, SWT.NONE);
label6.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, true, false));
label6.setText("State:");
new Label(gNodes, SWT.NONE);
tState = new Text(gNodes, SWT.BORDER);
tState.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
boolean valid = listener.isValidState(tState.getText());
if (!valid)
tState.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_YELLOW));
else
tState.setBackground(null);
bApplyNode.setEnabled(isValidNode()&& valid);
if (bApplyNode.getEnabled())
getShell().setDefaultButton(bApplyNode);
}
});
final GridData gridData18 = new GridData(GridData.FILL, GridData.CENTER, true, false, 3, 1);
gridData18.widthHint = 459;
tState.setLayoutData(gridData18);
bApplyNode = new Button(gNodes, SWT.NONE);
bApplyNode.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
applyNode();
}
});
bApplyNode.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
bApplyNode.setEnabled(false);
bApplyNode.setText("&Apply Chain Node");
//composite_2.setLayout(gridLayout_6);
label7 = new Label(gNodes, SWT.NONE);
label7.setText("Job:");
butGoto = new Button(gNodes, SWT.ARROW | SWT.DOWN);
butGoto.setVisible(listener.get_dom() != null && !listener.get_dom().isLifeElement());
butGoto.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
ContextMenu.goTo(cJob.getText(), dom, Editor.JOB);
}
});
butGoto.setAlignment(SWT.RIGHT);
cJob = new Combo(gNodes, SWT.BORDER);
cJob.setVisibleItemCount(9);
cJob.setMenu(new sos.scheduler.editor.app.ContextMenu(cJob, dom, Editor.JOB).getMenu());
//Utils.goTo(cJob.getText(), listener.get_dom(), sos.scheduler.editor.app.Editor.JOB);
/*cJob.addListener(SWT.MenuDetect, new Listener() {
public void handleEvent(Event e) {
//e.doit = cJob.getSelectionCount() > 0;
}
});
*/
cJob.addMouseListener(new MouseAdapter() {
public void mouseDown(final MouseEvent e) {
if(refresh) {
if(listener.getJobs() != null) {
cJob.setItems(listener.getJobs());
refresh = false;
}
}
}
});
cJob.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
bApplyNode.setEnabled(isValidNode());
if (bApplyNode.getEnabled())
getShell().setDefaultButton(bApplyNode);
}
});
cJob.addKeyListener(new KeyAdapter() {
public void keyPressed(final KeyEvent e) {
if (e.keyCode == SWT.CR) {
applyNode();
}
}
});
final GridData gridData13 = new GridData(GridData.FILL, GridData.CENTER, true, false, 3, 1);
gridData13.widthHint = 579;
cJob.setLayoutData(gridData13);
final Composite composite = new Composite(gNodes, SWT.NONE);
composite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
final GridLayout gridLayout_2 = new GridLayout();
gridLayout_2.marginWidth = 0;
gridLayout_2.marginHeight = 0;
gridLayout_2.numColumns = 2;
composite.setLayout(gridLayout_2);
butBrowse = new Button(composite, SWT.NONE);
butBrowse.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
butBrowse.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
String jobname = IOUtils.openDirectoryFile(MergeAllXMLinDirectory.MASK_JOB);
if(jobname != null && jobname.length() > 0)
cJob.setText(jobname);
}
});
butBrowse.setText("Browse");
if(!listener.get_dom().isLifeElement()) {
butImportJob = new Button(composite, SWT.NONE);
final GridData gridData_3 = new GridData(GridData.END, GridData.CENTER, false, false);
gridData_3.widthHint = 84;
butImportJob.setLayoutData(gridData_3);
butImportJob.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
JobAssistentImportJobsForm importJobs = new JobAssistentImportJobsForm(listener.get_dom(), update, Editor.JOB_CHAINS);
importJobs.setJobname(cJob);
importJobs.showAllImportJobs("order");
if (!listener.get_dom().isLifeElement())
update.updateOrders();
refresh = true;
}
});
butImportJob.setText("Import Job");
}
label8 = new Label(gNodes, SWT.NONE);
label8.setText("Next State:");
new Label(gNodes, SWT.NONE);
/*composite_2 = new Composite(gNodes, SWT.NONE);
composite_2.addListener (SWT.Resize, new org.eclipse.swt.widgets.Listener () {
public void handleEvent (Event e) {
cNextState.setBounds(0, 0, composite_2.getBounds().height, composite_2.getBounds().height);
txtStateText.setBounds(0, 0, composite_2.getBounds().height, composite_2.getBounds().height);
}
});
*/
/*final GridData gridData_2 = new GridData(GridData.FILL, GridData.FILL, true, false);
gridData_2.minimumWidth = 35;
composite_2.setLayoutData(gridData_2);
final Composite composite_4 = new Composite(gNodes, SWT.NONE);
final GridData gridData_4 = new GridData(GridData.FILL, GridData.FILL, false, false);
gridData_4.widthHint = 59;
composite_4.setLayoutData(gridData_4);
composite_4.setLayout(new GridLayout());
*/
cNextState = new Combo(gNodes, SWT.NONE);
cNextState.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
cNextState.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
bApplyNode.setEnabled(isValidNode());
if (bApplyNode.getEnabled())
getShell().setDefaultButton(bApplyNode);
}
});
cNextState.addKeyListener(new KeyAdapter() {
public void keyPressed(final KeyEvent e) {
if (e.keyCode == SWT.CR) {
applyNode();
}
}
});
//cNextState = new Combo(composite_4, SWT.BORDER);
/*cNextState.setBounds(0, 0, composite_2.getBounds().height, composite_2.getBounds().height);
cNextState.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
bApplyNode.setEnabled(isValidNode());
if (bApplyNode.getEnabled())
getShell().setDefaultButton(bApplyNode);
}
});
cNextState.addKeyListener(new KeyAdapter() {
public void keyPressed(final KeyEvent e) {
if (e.keyCode == SWT.CR) {
applyNode();
}
}
});
*/
//txtStateText = new Text(composite_2, SWT.BORDER);
//txtStateText.setBounds(0, 0, composite_2.getBounds().height, composite_2.getBounds().height);
final Label delayLabel = new Label(gNodes, SWT.NONE);
delayLabel.setText("Delay:");
tDelay = new Text(gNodes, SWT.BORDER);
tDelay.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
bApplyNode.setEnabled(isValidNode());
if (bApplyNode.getEnabled())
getShell().setDefaultButton(bApplyNode);
}
});
tDelay.addKeyListener(new KeyAdapter() {
public void keyPressed(final KeyEvent e) {
}
});
final GridData gridData_8 = new GridData(GridData.FILL, GridData.CENTER, true, false);
gridData_8.minimumWidth = 35;
gridData_8.widthHint = 186;
tDelay.setLayoutData(gridData_8);
bNewNode = new Button(gNodes, SWT.NONE);
bNewNode.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
isInsert = false;
getShell().setDefaultButton(null);
tNodes.deselectAll();
butDetailsJob.setEnabled(false);
listener.selectNode(null);
bRemoveNode.setEnabled(false);
enableNode(true);
fillNode(true);
tState.setFocus();
//test
//cNextState.setVisible(false);
//txtStateText.setVisible(true);
cNextState.setVisibleItemCount(0);
}
});
bNewNode.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
bNewNode.setText("New Chain &Node");
label9 = new Label(gNodes, SWT.NONE);
label9.setText("Error State:");
new Label(gNodes, SWT.NONE);
cErrorState = new Combo(gNodes, SWT.NONE);
cErrorState.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
bApplyNode.setEnabled(isValidNode());
if (bApplyNode.getEnabled())
getShell().setDefaultButton(bApplyNode);
}
});
cErrorState.addKeyListener(new KeyAdapter() {
public void keyPressed(final KeyEvent e) {
if (e.keyCode == SWT.CR) {
applyNode();
}
}
});
final GridData gridData15 = new GridData(GridData.FILL, GridData.CENTER, true, false);
gridData15.widthHint = 80;
cErrorState.setLayoutData(gridData15);
final Label onErrorLabel = new Label(gNodes, SWT.NONE);
onErrorLabel.setText("On Error:");
cOnError = new Combo(gNodes, SWT.READ_ONLY);
cOnError.setItems(new String[] {"", "setback", "suspend"});
cOnError.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
bApplyNode.setEnabled(isValidNode());
if (bApplyNode.getEnabled())
getShell().setDefaultButton(bApplyNode);
}
});
cOnError.addKeyListener(new KeyAdapter() {
public void keyPressed(final KeyEvent e) {
if (e.keyCode == SWT.CR) {
applyNode();
}
}
});
final GridData gridData_12 = new GridData(GridData.FILL, GridData.CENTER, true, false);
gridData_12.minimumWidth = 20;
cOnError.setLayoutData(gridData_12);
butInsert = new Button(gNodes, SWT.NONE);
butInsert.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
isInsert = true;
String state = tState.getText();
tState.setText("");
tDelay.setText("");
cErrorState.setText("");
cOnError.setText("");
cJob.setText("");
enableNode(true);
bFullNode.setSelection(true);
bEndNode.setSelection(false);
//n�chste status
cNextState.setText(state);
}
});
butInsert.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false));
butInsert.setText("Insert Chain Node");
cType = new Composite(gNodes, SWT.NONE);
final GridLayout gridLayout_4 = new GridLayout();
gridLayout_4.marginHeight = 0;
gridLayout_4.marginWidth = 0;
gridLayout_4.numColumns = 4;
cType.setLayout(gridLayout_4);
final GridData gridData5 = new GridData(GridData.FILL, GridData.CENTER, true, false, 5, 1);
gridData5.widthHint = 387;
gridData5.heightHint = 35;
cType.setLayoutData(gridData5);
bFullNode = new Button(cType, SWT.RADIO);
bFullNode.addSelectionListener(new SelectionAdapter() {
public void widgetDefaultSelected(final SelectionEvent e) {
}
});
bFullNode.setSelection(true);
bFullNode.setText("Full Node");
bEndNode = new Button(cType, SWT.RADIO);
bEndNode.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
if (bFileSink.getSelection()) {
cNextState.setEnabled(false);
cErrorState.setEnabled(false);
cOnError.setEnabled(false);
tDelay.setEnabled(false);
cJob.setEnabled(false);
cJob.setText("");
cNextState.setText("");
cErrorState.setText("");
cOnError.setText("");
tMoveTo.setEnabled(true);
bRemoveFile.setEnabled(true);
}
if (bEndNode.getSelection()) {
cNextState.setEnabled(false);
cErrorState.setEnabled(false);
cOnError.setEnabled(false);
tDelay.setEnabled(false);
cJob.setEnabled(false);
cJob.setText("");
cNextState.setText("");
cErrorState.setText("");
cOnError.setText("");
tMoveTo.setEnabled(false);
bRemoveFile.setEnabled(false);
}
if (bFullNode.getSelection()) {
tMoveTo.setEnabled(false);
bRemoveFile.setEnabled(false);
cNextState.setEnabled(true);
cErrorState.setEnabled(true);
cOnError.setEnabled(true);
cJob.setEnabled(true);
tDelay.setEnabled(true);
if (bApplyNode.getEnabled())
getShell().setDefaultButton(bApplyNode);
}
bApplyNode.setEnabled(isValidNode());
}
});
bEndNode.setText("End Node");
bFileSink = new Button(cType, SWT.RADIO);
final GridData gridData = new GridData(GridData.FILL, GridData.CENTER, false, false);
gridData.widthHint = 71;
bFileSink.setLayoutData(gridData);
bFileSink.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
if (bFileSink.getSelection()) {
cNextState.setEnabled(false);
cErrorState.setEnabled(false);
cOnError.setEnabled(false);
cJob.setEnabled(false);
cJob.setText("");
cNextState.setText("");
cErrorState.setText("");
cOnError.setText("");
tMoveTo.setEnabled(true);
bRemoveFile.setEnabled(true);
if (tState.getText().equals(""))
bApplyNode.setEnabled(false);
}
}
});
bFileSink.setEnabled(false);
bFileSink.setText("File Sink");
final Composite composite_3 = new Composite(cType, SWT.NONE);
final GridData gridData_5 = new GridData(GridData.FILL, GridData.FILL, true, false);
gridData_5.widthHint = 238;
composite_3.setLayoutData(gridData_5);
final GridLayout gridLayout_7 = new GridLayout();
gridLayout_7.verticalSpacing = 0;
gridLayout_7.numColumns = 2;
gridLayout_7.marginWidth = 0;
gridLayout_7.marginHeight = 0;
gridLayout_7.horizontalSpacing = 0;
composite_3.setLayout(gridLayout_7);
final Label removeFileLabel = new Label(composite_3, SWT.NONE);
removeFileLabel.setText("Remove File");
bRemoveFile = new Button(composite_3, SWT.CHECK);
final GridData gridData_1 = new GridData();
gridData_1.horizontalIndent = 5;
bRemoveFile.setLayoutData(gridData_1);
bRemoveFile.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
if (bRemoveFile.getSelection())tMoveTo.setText("");
bApplyNode.setEnabled(isValidNode());
if (bApplyNode.getEnabled())
getShell().setDefaultButton(bApplyNode);
}
});
bRemoveFile.addKeyListener(new KeyAdapter() {
public void keyPressed(final KeyEvent e) {
if (e.keyCode == SWT.CR) {
applyNode();
}
}
});
bRemoveFile.setEnabled(false);
final Label movweToLabel = new Label(composite_3, SWT.NONE);
movweToLabel.setText("Move to");
tMoveTo = new Text(composite_3, SWT.BORDER);
final GridData gridData_3 = new GridData(GridData.FILL, GridData.CENTER, true, false);
gridData_3.horizontalIndent = 5;
tMoveTo.setLayoutData(gridData_3);
tMoveTo.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
if (!tMoveTo.getText().equals(""))bRemoveFile.setSelection(false);
bApplyNode.setEnabled(isValidNode());
if (bApplyNode.getEnabled())
getShell().setDefaultButton(bApplyNode);
}
});
tMoveTo.addKeyListener(new KeyAdapter() {
public void keyPressed(final KeyEvent e) {
if (e.keyCode == SWT.CR) {
applyNode();
}
}
});
tMoveTo.setEnabled(false);
dumm2 = new Button(gNodes, SWT.NONE);
dumm2.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
dumm2.setVisible(false);
dumm2.setEnabled(false);
dumm2.setText("Remove Order File Source");
tNodes = new Table(gNodes, SWT.FULL_SELECTION | SWT.BORDER);
tNodes.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
//test
//cNextState.setVisible(true);
//txtStateText.setVisible(false);
selectNodes();
}
});
tNodes.setLinesVisible(true);
tNodes.setHeaderVisible(true);
final GridData gridData4 = new GridData(GridData.CENTER, GridData.FILL, true, true, 5, 4);
gridData4.heightHint = 112;
tNodes.setLayoutData(gridData4);
final TableColumn tableColumn3 = new TableColumn(tNodes, SWT.NONE);
tableColumn3.setWidth(90);
tableColumn3.setText("State");
final TableColumn newColumnTableColumn_3 = new TableColumn(tNodes, SWT.NONE);
newColumnTableColumn_3.setWidth(100);
newColumnTableColumn_3.setText("Node");
final TableColumn tableColumn4 = new TableColumn(tNodes, SWT.NONE);
tableColumn4.setWidth(200);
tableColumn4.setText("Job/Dir");
final TableColumn tableColumn5 = new TableColumn(tNodes, SWT.NONE);
tableColumn5.setWidth(90);
tableColumn5.setText("Next State");
final TableColumn tableColumn6 = new TableColumn(tNodes, SWT.NONE);
tableColumn6.setWidth(90);
tableColumn6.setText("Error State");
final TableColumn newColumnTableColumn_4 = new TableColumn(tNodes, SWT.NONE);
newColumnTableColumn_4.setWidth(100);
newColumnTableColumn_4.setText("On Error");
final Composite composite_1 = new Composite(gNodes, SWT.NONE);
composite_1.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false));
final GridLayout gridLayout_5 = new GridLayout();
gridLayout_5.marginWidth = 0;
gridLayout_5.marginHeight = 0;
gridLayout_5.numColumns = 3;
composite_1.setLayout(gridLayout_5);
butUp = new Button(composite_1, SWT.NONE);
butUp.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
if (tNodes.getSelectionCount() > 0) {
int index = tNodes.getSelectionIndex();
if(index > 0) {
listener.changeUp(tNodes, true, bFullNode.getSelection() || bEndNode.getSelection(), tState.getText(), cJob.getText(), tDelay.getText(), cNextState.getText(), cErrorState.getText(),bRemoveFile.getSelection(),tMoveTo.getText(), index, reorderButton.getSelection());
selectNodes();
}
}
}
});
butUp.setImage(ResourceManager.getImageFromResource("/sos/scheduler/editor/icon_up.gif"));
butDown = new Button(composite_1, SWT.NONE);
butDown.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
if (tNodes.getSelectionCount() > 0) {
int index = tNodes.getSelectionIndex();
if(index == tNodes.getItemCount()-1) {
//System.out.println("Datensatz ist bereits ganz unten.");
} else if(index >= 0) {
listener.changeUp(tNodes, false, bFullNode.getSelection() || bEndNode.getSelection(), tState.getText(), cJob.getText(), tDelay.getText(), cNextState.getText(), cErrorState.getText(),bRemoveFile.getSelection(),tMoveTo.getText(), index, reorderButton.getSelection());
selectNodes();
}
}
}
});
butDown.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false));
butDown.setImage(ResourceManager.getImageFromResource("/sos/scheduler/editor/icon_down.gif"));
reorderButton = new Button(composite_1, SWT.CHECK);
reorderButton.setSelection(true);
reorderButton.setText("Reorder");
/*final Button butIUp = new Button(composite_1, SWT.NONE);
butIUp.setLayoutData(new GridData());
butIUp.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
if (tNodes.getSelectionCount() > 0) {
int index = tNodes.getSelectionIndex();
if(index > 0) {
listener.changeInsertUp(tNodes,
true,
bFullNode.getSelection() || bEndNode.getSelection(),
tState.getText(),
cJob.getText(),
tDelay.getText(),
cNextState.getText(),
cErrorState.getText(),
bRemoveFile.getSelection(),
tMoveTo.getText(),
index);
selectNodes();
}
}
}
});
butIUp.setText("iup");
*/
butDetailsJob = new Button(gNodes, SWT.NONE);
butDetailsJob.setEnabled(false);
butDetailsJob.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
if(tNodes.getSelectionCount() > 0) {
showDetails(tNodes.getSelection()[0].getText(0), cJob.getText());
//tNodes.deselectAll();
//selectNodes();
//butDetailsJob.setEnabled(false);
checkParameter = true;
}
}
});
butDetailsJob.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
butDetailsJob.setText("Parameter");
butDetailsJob.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
if(checkParameter) {
listener.fillChain(tNodes);
checkParameter = false;
}
}
});
butAddMissingNodes = new Button(gNodes, SWT.NONE);
butAddMissingNodes.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
try {
if(tNodes.getSelectionCount() > 0) {
TableItem item = tNodes.getSelection()[0];
if(!listener.checkForState(item.getText(3))) {
listener.selectNode(null);
listener.applyNode(true, item.getText(3), "", "", "", "", false,"", "");
}
if(!listener.checkForState(item.getText(4))) {
listener.selectNode(null);
listener.applyNode(true, item.getText(4), "", "", "", "", false,"", "");
}
listener.fillChain(tNodes);
bApplyNode.setEnabled(false);
bRemoveNode.setEnabled(false);
listener.selectNode(null);
fillNode(true);
enableNode(false);
//listener.applyNode(bFullNode.getSelection() || bEndNode.getSelection(), tState.getText(), cJob.getText(), tDelay.getText(), cNextState.getText(), cErrorState.getText(),bRemoveFile.getSelection(),tMoveTo.getText(), cOnError.getText());
}
} catch (Exception ex) {
try {
new ErrorLog("error in " + sos.util.SOSClassUtil.getMethodName() , ex);
} catch(Exception ee) {
//tu nichts
}
}
}
});
butAddMissingNodes.setEnabled(false);
butAddMissingNodes.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false));
butAddMissingNodes.setText("Add Missing Nodes");
bRemoveNode = new Button(gNodes, SWT.NONE);
bRemoveNode.setEnabled(false);
bRemoveNode.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
if (tNodes.getSelectionCount() > 0) {
int c = MainWindow.message(getShell(), "Do you want remove the job node from this job chain?", SWT.ICON_QUESTION | SWT.YES | SWT.NO );
if(c != SWT.YES)
return;
int index = tNodes.getSelectionIndex();
listener.deleteNode(tNodes);
tNodes.remove(index);
if (index >= tNodes.getItemCount())
index--;
boolean empty = tNodes.getItemCount() == 0;
fillNode(empty);
enableNode(!empty);
bRemoveNode.setEnabled(!empty);
if (!empty) {
tNodes.select(index);
listener.selectNode(tNodes);
} else {
listener.selectNode(null);
}
}
}
});
bRemoveNode.setLayoutData(new GridData(GridData.FILL, GridData.END, false, false));
bRemoveNode.setText("Remove Node");
gFileOrderSource = new Group(jobChainGroup, SWT.NONE);
final GridData gridData_10 = new GridData(GridData.FILL, GridData.CENTER, true, false);
gridData_10.heightHint = 169;
gFileOrderSource.setLayoutData(gridData_10);
gFileOrderSource.setText("File Order Source");
final GridLayout gridLayout_1 = new GridLayout();
gridLayout_1.marginTop = 5;
gridLayout_1.marginBottom = 5;
gridLayout_1.numColumns = 5;
gFileOrderSource.setLayout(gridLayout_1);
final Label directoryLabel = new Label(gFileOrderSource, SWT.NONE);
directoryLabel.setFont(SWTResourceManager.getFont("", 8, SWT.NONE));
directoryLabel.setText("Directory");
tDirectory = new Text(gFileOrderSource, SWT.BORDER);
tDirectory.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
tDirectory.selectAll();
}
});
tDirectory.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
bApplyFileOrderSource.setEnabled(isValidSource());
if (bApplyFileOrderSource.getEnabled())
getShell().setDefaultButton(bApplyFileOrderSource);
}
});
tDirectory.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
}
});
tDirectory.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
final Label delay_after_errorLabel = new Label(gFileOrderSource, SWT.NONE);
delay_after_errorLabel.setText("Delay after error");
tDelayAfterError = new Text(gFileOrderSource, SWT.BORDER);
tDelayAfterError.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
tDelayAfterError.selectAll();
}
});
tDelayAfterError.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
bApplyFileOrderSource.setEnabled(isValidSource());
if (bApplyFileOrderSource.getEnabled())
getShell().setDefaultButton(bApplyFileOrderSource);
}
});
tDelayAfterError.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
bApplyFileOrderSource = new Button(gFileOrderSource, SWT.NONE);
bApplyFileOrderSource.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
applyFileOrderSource();
}
});
bApplyFileOrderSource.setEnabled(false);
bApplyFileOrderSource.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false));
bApplyFileOrderSource.setText("Apply File Order Source");
final Label regexLabel = new Label(gFileOrderSource, SWT.NONE);
regexLabel.setFont(SWTResourceManager.getFont("", 8, SWT.NONE));
regexLabel.setText("Regex");
tRegex = new Text(gFileOrderSource, SWT.BORDER);
tRegex.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
tRegex.selectAll();
}
});
tRegex.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
bApplyFileOrderSource.setEnabled(isValidSource());
if (bApplyFileOrderSource.getEnabled())
getShell().setDefaultButton(bApplyFileOrderSource);
}
});
tRegex.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
final Label repeatLabel = new Label(gFileOrderSource, SWT.NONE);
repeatLabel.setText("Repeat");
tRepeat = new Text(gFileOrderSource, SWT.BORDER);
tRepeat.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
tRepeat.selectAll();
}
});
tRepeat.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
bApplyFileOrderSource.setEnabled(isValidSource());
if (bApplyFileOrderSource.getEnabled())
getShell().setDefaultButton(bApplyFileOrderSource);
}
});
tRepeat.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
new Label(gFileOrderSource, SWT.NONE);
final Label maxLabel = new Label(gFileOrderSource, SWT.NONE);
maxLabel.setText("Max");
tMax = new Text(gFileOrderSource, SWT.BORDER);
tMax.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
tMax.selectAll();
}
});
tMax.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
bApplyFileOrderSource.setEnabled(isValidSource());
if (bApplyFileOrderSource.getEnabled())
getShell().setDefaultButton(bApplyFileOrderSource);
}
});
tMax.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
final Label stateLabel = new Label(gFileOrderSource, SWT.NONE);
stateLabel.setText("Next state");
tNextState = new Text(gFileOrderSource, SWT.BORDER);
tNextState.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
tNextState.selectAll();
}
});
tNextState.addModifyListener(new ModifyListener() {
public void modifyText(final ModifyEvent e) {
bApplyFileOrderSource.setEnabled(isValidSource());
if (bApplyFileOrderSource.getEnabled())
getShell().setDefaultButton(bApplyFileOrderSource);
}
});
tNextState.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
tFileOrderSource = new Table(gFileOrderSource, SWT.BORDER);
tFileOrderSource.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
if (tFileOrderSource.getSelectionCount() > 0) {
listener.selectFileOrderSource(tFileOrderSource);
bApplyFileOrderSource.setEnabled(false);
fillFileOrderSource(false);
enableFileOrderSource(true);
}
bRemoveFileOrderSource.setEnabled(tFileOrderSource.getSelectionCount() > 0);
}
});
tFileOrderSource.setLinesVisible(true);
tFileOrderSource.setHeaderVisible(true);
final GridData gridData_9 = new GridData(GridData.FILL, GridData.FILL, true, true, 4, 2);
gridData_9.minimumHeight = 40;
gridData_9.heightHint = 138;
tFileOrderSource.setLayoutData(gridData_9);
final TableColumn newColumnTableColumn = new TableColumn(tFileOrderSource, SWT.NONE);
newColumnTableColumn.setWidth(300);
newColumnTableColumn.setText("Directory");
final TableColumn newColumnTableColumn_1 = new TableColumn(tFileOrderSource, SWT.NONE);
newColumnTableColumn_1.setWidth(200);
newColumnTableColumn_1.setText("Regex");
final TableColumn newColumnTableColumn_2 = new TableColumn(tFileOrderSource, SWT.NONE);
newColumnTableColumn_2.setWidth(100);
newColumnTableColumn_2.setText("Next State");
bNewFileOrderSource = new Button(gFileOrderSource, SWT.NONE);
bNewFileOrderSource.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
getShell().setDefaultButton(null);
tFileOrderSource.deselectAll();
listener.selectFileOrderSource(null);
bRemoveFileOrderSource.setEnabled(false);
fillFileOrderSource(true);
enableFileOrderSource(true);
tDirectory.setFocus();
}
});
bNewFileOrderSource.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false));
bNewFileOrderSource.setText("New File Order Source");
bRemoveFileOrderSource = new Button(gFileOrderSource, SWT.NONE);
bRemoveFileOrderSource.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
if (tFileOrderSource.getSelectionCount() > 0) {
bFileSink.setEnabled(tFileOrderSource.getItemCount() > 0);
tMoveTo.setEnabled(tFileOrderSource.getItemCount() > 0);
bRemoveFile.setEnabled(tFileOrderSource.getItemCount() > 0);
int index = tFileOrderSource.getSelectionIndex();
listener.deleteFileOrderSource(tFileOrderSource);
tFileOrderSource.remove(index);
if (index >= tFileOrderSource.getItemCount())
index--;
boolean empty = tFileOrderSource.getItemCount() == 0;
fillFileOrderSource(empty);
enableFileOrderSource(!empty);
bRemoveFileOrderSource.setEnabled(!empty);
if (!empty) {
tFileOrderSource.select(index);
listener.selectFileOrderSource(tFileOrderSource);
} else {
listener.selectFileOrderSource(null);
}
}
}
});
bRemoveFileOrderSource.setEnabled(false);
bRemoveFileOrderSource.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, true));
bRemoveFileOrderSource.setText("Remove Order File Source");
} catch (Exception e) {
try {
new ErrorLog("error in " + sos.util.SOSClassUtil.getMethodName() , e);
} catch(Exception ee) {
//tu nichts
}
}
}
private void fillChain(boolean enable, boolean isNew) {
listener.fillFileOrderSource(tFileOrderSource);
listener.fillChain(tNodes);
gNodes.setText(GROUP_NODES_TITLE + " for: " + listener.getChainName());
gFileOrderSource.setText(GROUP_FILEORDERSOURCE_TITLE + " for: " + listener.getChainName());
bNewFileOrderSource.setEnabled(true);
bNewNode.setEnabled(true);
enableNode(false);
enableFileOrderSource(false);
}
private void enableNode(boolean enable) {
bFullNode.setEnabled(enable);
bEndNode.setEnabled(enable);
bFileSink.setEnabled(enable && tFileOrderSource.getItemCount() > 0);
tState.setEnabled(enable);
cJob.setEnabled(enable);
cNextState.setEnabled(enable);
cErrorState.setEnabled(enable);
cOnError.setEnabled(enable);
tDelay.setEnabled(enable);
if(!listener.get_dom().isLifeElement())
butImportJob.setEnabled(enable);
butBrowse.setEnabled(enable);
tMoveTo.setEnabled(enable && tFileOrderSource.getItemCount() > 0);
bRemoveFile.setEnabled(enable && tFileOrderSource.getItemCount() > 0);
bApplyNode.setEnabled(false);
}
private void enableFileOrderSource(boolean enable) {
tDirectory.setEnabled(enable);
tMax.setEnabled(enable);
tRepeat.setEnabled(enable);
tDelayAfterError.setEnabled(enable);
tNextState.setEnabled(enable);
tRegex.setEnabled(enable);
bApplyFileOrderSource.setEnabled(false);
}
private void fillNode(boolean clear) {
try {
butAddMissingNodes.setEnabled(false);
boolean fullNode = listener.isFullNode();
boolean fileSinkNode = listener.isFileSinkNode();
boolean endNode = !fullNode && !fileSinkNode;
bFullNode.setSelection(clear || fullNode);
bEndNode.setSelection(!clear && endNode);
bFileSink.setSelection(!clear && fileSinkNode && tFileOrderSource.getItemCount() > 0);
tDelay.setEnabled(fullNode);
cNextState.setEnabled(fullNode);
cErrorState.setEnabled(fullNode);
cOnError.setEnabled(fullNode);
cJob.setEnabled(fullNode);
tMoveTo.setEnabled(fileSinkNode && tFileOrderSource.getItemCount() > 0);
bRemoveFile.setEnabled(fileSinkNode && tFileOrderSource.getItemCount() > 0);
tState.setText(clear ? "" : listener.getState());
tDelay.setText(clear ? "" : listener.getDelay());
cJob.setItems(listener.getJobs());
if (listener.getStates().length > 0) cNextState.setItems(listener.getStates());
if (listener.getAllStates().length > 0)
cErrorState.setItems(listener.getAllStates());
tMoveTo.setText(listener.getMoveTo());
bRemoveFile.setSelection(listener.getRemoveFile());
int job = cJob.indexOf(listener.getJob());
if (clear || job == -1)
cJob.setText(listener.getJob());
else
cJob.select(job);
int next = cNextState.indexOf(listener.getNextState());
if (clear || !fullNode || next == -1)
cNextState.setText(listener.getNextState());
else
cNextState.select(next);
int error = cErrorState.indexOf(listener.getErrorState());
if (clear || !fullNode || error == -1)
cErrorState.setText(listener.getErrorState());
else
cErrorState.select(error);
int onError = cOnError.indexOf(listener.getOnError());
if (clear || !fullNode || onError == -1)
cOnError.setText(listener.getOnError());
else
cOnError.select(onError);
bApplyNode.setEnabled(false);
} catch(Exception e) {
try {
new ErrorLog("error in " + sos.util.SOSClassUtil.getMethodName() , e);
} catch(Exception ee) {
//tu nichts
}
}
}
private void fillFileOrderSource(boolean clear) {
tDirectory.setText(clear ? "" : listener.getFileOrderSource("directory"));
tRegex.setText(clear ? "" : listener.getFileOrderSource("regex"));
tMax.setText(clear ? "" : listener.getFileOrderSource("max"));
tDelayAfterError.setText(clear ? "" : listener.getFileOrderSource("delay_after_error"));
tRepeat.setText(listener.getFileOrderSource(clear ? "" : "repeat"));
tNextState.setText(listener.getFileOrderSource(clear ? "" : "next_state"));
bApplyFileOrderSource.setEnabled(false);
}
private void applyNode() {
try {
cNextState.setVisibleItemCount(5);
String msg = "";
if (!listener.isValidState(tState.getText()))
msg = "State already defined.";
if (!msg.equals("")) {
MainWindow.message(msg, SWT.ICON_INFORMATION);
} else {
if(isInsert)
listener.applyInsertNode(bFullNode.getSelection() || bEndNode.getSelection(), tState.getText(), cJob.getText(), tDelay.getText(), cNextState.getText(), cErrorState.getText(),bRemoveFile.getSelection(),tMoveTo.getText(), cOnError.getText());
else
listener.applyNode(bFullNode.getSelection() || bEndNode.getSelection(), tState.getText(), cJob.getText(), tDelay.getText(), cNextState.getText(), cErrorState.getText(),bRemoveFile.getSelection(),tMoveTo.getText(), cOnError.getText());
DetailsListener.checkDetailsParameter(tState.getText(), listener.getChainName() , cJob.getText(), dom, update);
listener.fillChain(tNodes);
bApplyNode.setEnabled(false);
bRemoveNode.setEnabled(false);
listener.selectNode(null);
fillNode(true);
enableNode(false);
}
isInsert = false;
} catch (Exception e) {
try {
new ErrorLog("error in " + sos.util.SOSClassUtil.getMethodName() , e);
} catch(Exception ee) {
//tu nichts
}
}
}
private void applyFileOrderSource() {
if(Utils.isRegExpressions(tRegex.getText())) {
listener.applyFileOrderSource(tDirectory.getText(),tRegex.getText(), tNextState.getText(), tMax.getText(), tRepeat.getText(),tDelayAfterError.getText());
listener.fillFileOrderSource(tFileOrderSource);
bApplyFileOrderSource.setEnabled(false);
bRemoveFileOrderSource.setEnabled(false);
bFileSink.setEnabled(bFullNode.getEnabled());
tMoveTo.setEnabled(bFullNode.getEnabled());
bRemoveFile.setEnabled(bFullNode.getEnabled());
listener.selectFileOrderSource(null);
fillFileOrderSource(true);
enableFileOrderSource(false);
} else {
MainWindow.message(tRegex.getText() + " is not a Regular expression.", SWT.ICON_INFORMATION);
}
}
private boolean isValidNode() {
if (tState.getText().equals("") || bFullNode.getSelection() && cJob.getText().equals("")) {
return false;
} else {
return true;
}
}
private boolean isValidSource() {
if (tDirectory.getText().equals("") ) {
return false;
} else {
return true;
}
}
public void setISchedulerUpdate(ISchedulerUpdate update_) {
update = update_;
listener.setISchedulerUpdate(update_);
}
private void showDetails(String state, String jobname) {
boolean isLifeElement = listener.get_dom().isLifeElement() || listener.get_dom().isDirectory();
if(state == null) {
DetailDialogForm detail = new DetailDialogForm(listener.getChainName(), isLifeElement, listener.get_dom().getFilename());
detail.showDetails();
detail.getDialogForm().setParamsForWizzard(listener.get_dom(), update, jobname);
} else {
DetailDialogForm detail = new DetailDialogForm(listener.getChainName(), state, null, isLifeElement, listener.get_dom().getFilename());
detail.showDetails();
detail.getDialogForm().setParamsForWizzard(listener.get_dom(), update, jobname);
}
}
private void selectNodes() {
if(bApplyNode.isEnabled()) {
int c = MainWindow.message(getShell(), sos.scheduler.editor.app.Messages.getString("MainListener.apply_changes"), SWT.ICON_QUESTION | SWT.YES | SWT.NO );
if(c == SWT.YES){
applyNode();
}
}
if (tNodes.getSelectionCount() > 0) {
listener.selectNode(tNodes);
enableNode(true);
fillNode(false);
butDetailsJob.setEnabled(true);
butAddMissingNodes.setEnabled(!listener.checkForState(tNodes.getSelection()[0].getText(3)) || !listener.checkForState(tNodes.getSelection()[0].getText(4)));
} else {
butDetailsJob.setEnabled(false);
butAddMissingNodes.setEnabled(false);
}
bRemoveNode.setEnabled(tNodes.getSelectionCount() > 0);
}
public void setToolTipText() {
tState.setToolTipText(Messages.getTooltip("job_chains.node.state"));
cErrorState.setToolTipText(Messages.getTooltip("job_chains.node.error_state"));
cJob.setToolTipText(Messages.getTooltip("job_chains.node.job"));
cNextState.setToolTipText(Messages.getTooltip("job_chains.node.next_state"));
bApplyNode.setToolTipText(Messages.getTooltip("job_chains.node.btn_apply"));
bFullNode.setToolTipText(Messages.getTooltip("job_chains.node.btn_full_node"));
bEndNode.setToolTipText(Messages.getTooltip("job_chains.node.btn_end_node"));
bFileSink.setToolTipText(Messages.getTooltip("job_chains.node.btn_filesink_node"));
butDetailsJob.setToolTipText(Messages.getTooltip("job_chains.node.details"));
butBrowse.setToolTipText(Messages.getTooltip("job_chains.node.Browse"));
butDown.setToolTipText(Messages.getTooltip("button_down"));
butUp.setToolTipText(Messages.getTooltip("button_up"));
if(butImportJob != null ) butImportJob.setToolTipText(Messages.getTooltip("jobs.assistent"));
bNewNode.setToolTipText(Messages.getTooltip("job_chains.node.btn_new"));
tDelay.setToolTipText(Messages.getTooltip("job_chains.node.delay"));
cOnError.setToolTipText(Messages.getTooltip("job_chains.node.on_error"));
bRemoveFile.setToolTipText(Messages.getTooltip("job_chains.node.btn_remove"));
bRemoveNode.setToolTipText(Messages.getTooltip("job_chains.node.btn_remove"));
tMoveTo.setToolTipText(Messages.getTooltip("job_chain.stop_options.move_to"));
tNodes.setToolTipText(Messages.getTooltip("job_chains.chain.node_table"));
tDirectory.setToolTipText(Messages.getTooltip("job_chain.monitoring_directory"));
tDelayAfterError.setToolTipText(Messages.getTooltip("job_chain.delay_after_error"));
tRegex.setToolTipText(Messages.getTooltip("job_chain.regex"));
tRepeat.setToolTipText(Messages.getTooltip("job_chain.repeat"));
tMax.setToolTipText(Messages.getTooltip("job_chain.max"));
tNextState.setToolTipText(Messages.getTooltip("job_chain.next_state"));
tFileOrderSource.setToolTipText(Messages.getTooltip("job_chain.table"));
bApplyFileOrderSource.setToolTipText(Messages.getTooltip("job_chain.btn_apply"));
bNewFileOrderSource.setToolTipText(Messages.getTooltip("job_chain.btn_new"));
bRemoveFileOrderSource.setToolTipText(Messages.getTooltip("job_chain.btn_remove"));
butGoto.setToolTipText(Messages.getTooltip("goto"));
butInsert.setToolTipText(Messages.getTooltip("job_chain.insert"));
reorderButton.setToolTipText(Messages.getTooltip("job_chain.reorder"));
butAddMissingNodes.setToolTipText(Messages.getTooltip("job_chain.but_add_missing_nodes"));
}
//ein Job Chain hat entweder job_chain_node ODER job_chain_node.job_chain Kindknoten.
private boolean check() {
try {
XPath x3 = XPath.newInstance("//job_chain[@name='"+ listener.getChainName() + "']/job_chain_node.job_chain");
List listOfElement_3 = x3.selectNodes(dom.getDoc());
if(listOfElement_3.isEmpty())
return true;
else
return false;
} catch (Exception e) {
try {
new ErrorLog("error in " + sos.util.SOSClassUtil.getMethodName() , e);
} catch(Exception ee) {
//tu nichts
}
return true;
}
}
} // @jve:decl-index=0:visual-constraint="10,10"