use of com.twinsoft.convertigo.eclipse.views.projectexplorer.ProjectExplorerView in project convertigo by convertigo.
the class SequenceImportFromXsdAction method run.
public void run() {
Display display = Display.getDefault();
Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
Shell shell = getParentShell();
shell.setCursor(waitCursor);
try {
ProjectExplorerView explorerView = getProjectExplorerView();
if (explorerView != null) {
DatabaseObjectTreeObject databaseObjectTreeObject = (DatabaseObjectTreeObject) explorerView.getFirstSelectedTreeObject();
DatabaseObject databaseObject = databaseObjectTreeObject.getObject();
SequenceTreeObject sequenceTreeObject = (SequenceTreeObject) ((databaseObject instanceof Sequence) ? databaseObjectTreeObject : databaseObjectTreeObject.getParentDatabaseObjectTreeObject());
Sequence sequence = (databaseObject instanceof Sequence) ? (Sequence) databaseObject : ((StepWithExpressions) databaseObject).getSequence();
FileDialog fileDialog = new FileDialog(shell, SWT.PRIMARY_MODAL | SWT.SAVE);
fileDialog.setText("Import schema file");
fileDialog.setFilterExtensions(new String[] { "*.xsd" });
fileDialog.setFilterNames(new String[] { "Schema files" });
fileDialog.setFilterPath(Engine.PROJECTS_PATH);
String filePath = fileDialog.open();
if (filePath != null) {
filePath = filePath.replaceAll("\\\\", "/");
XmlSchemaCollection collection = new XmlSchemaCollection();
collection.setBaseUri(filePath);
XmlSchema xmlSchema = SchemaUtils.loadSchema(new File(filePath), collection);
SchemaMeta.setCollection(xmlSchema, collection);
SchemaObjectsDialog dlg = new SchemaObjectsDialog(shell, sequence, xmlSchema);
if (dlg.open() == Window.OK) {
if (dlg.result instanceof Throwable) {
throw (Throwable) dlg.result;
} else {
Step step = (Step) dlg.result;
if (step != null) {
if (databaseObject instanceof Sequence) {
sequence.addStep(step);
sequence.hasChanged = true;
} else {
StepWithExpressions swe = (StepWithExpressions) databaseObject;
swe.addStep(step);
swe.hasChanged = true;
}
sequence.hasChanged = true;
// Reload sequence in tree without updating its schema for faster reload
ConvertigoPlugin.logDebug("Reload sequence: start");
explorerView.reloadTreeObject(sequenceTreeObject);
ConvertigoPlugin.logDebug("Reload sequence: end");
// Select target dbo in tree
explorerView.objectSelected(new CompositeEvent(databaseObject));
}
}
}
}
}
} catch (Throwable e) {
ConvertigoPlugin.logException(e, "Unable to import step from xsd!");
} finally {
shell.setCursor(null);
waitCursor.dispose();
}
}
use of com.twinsoft.convertigo.eclipse.views.projectexplorer.ProjectExplorerView in project convertigo by convertigo.
the class ProjectExplorerRefreshAction method run.
@Override
public void run() {
Display display = Display.getDefault();
Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
Shell shell = getParentShell();
shell.setCursor(waitCursor);
try {
ProjectExplorerView projectExplorerView = getProjectExplorerView();
if (projectExplorerView != null) {
TreeViewer viewer = projectExplorerView.viewer;
TreeObject[] treeObjects = projectExplorerView.getSelectedTreeObjects();
if (treeObjects == null) {
projectExplorerView.refreshProjects();
} else {
for (TreeObject treeObject : treeObjects) {
projectExplorerView.reloadProject(treeObject);
}
}
viewer.refresh();
}
} catch (Throwable e) {
ConvertigoPlugin.logException(e, "Unable to refresh the projects treeview!");
} finally {
shell.setCursor(null);
waitCursor.dispose();
}
}
use of com.twinsoft.convertigo.eclipse.views.projectexplorer.ProjectExplorerView in project convertigo by convertigo.
the class ProjectExplorerToggleLibsAction method run.
@Override
public void run() {
Display display = Display.getDefault();
Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
Shell shell = getParentShell();
shell.setCursor(waitCursor);
try {
ProjectExplorerView projectExplorerView = getProjectExplorerView();
if (projectExplorerView != null) {
boolean bHide = "true".equals(ConvertigoPlugin.getProperty(ConvertigoPlugin.PREFERENCE_HIDE_LIB_PROJECTS));
ConvertigoPlugin.setProperty(ConvertigoPlugin.PREFERENCE_HIDE_LIB_PROJECTS, bHide ? "false" : "true");
projectExplorerView.refreshTree();
}
} catch (Throwable e) {
ConvertigoPlugin.logException(e, "Unable to toggle libs projects in treeview!");
} finally {
shell.setCursor(null);
waitCursor.dispose();
}
}
use of com.twinsoft.convertigo.eclipse.views.projectexplorer.ProjectExplorerView in project convertigo by convertigo.
the class ChangeToIsInThenElseStepAction method run.
/* (non-Javadoc)
* @see com.twinsoft.convertigo.eclipse.popup.actions.MyAbstractAction#run()
*/
@Override
public void run() {
Display display = Display.getDefault();
Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
Shell shell = getParentShell();
shell.setCursor(waitCursor);
try {
ProjectExplorerView explorerView = getProjectExplorerView();
if (explorerView != null) {
TreeObject treeObject = explorerView.getFirstSelectedTreeObject();
Object databaseObject = treeObject.getObject();
// For IsInStep
if ((databaseObject != null) && (databaseObject instanceof IsInStep)) {
IsInStep isIn = (IsInStep) databaseObject;
List<Step> list = isIn.getSteps();
TreePath[] selectedPaths = new TreePath[list.size()];
for (int i = 0; i < list.size(); i++) {
StepTreeObject stepTreeObject = (StepTreeObject) explorerView.findTreeObjectByUserObject(list.get(i));
selectedPaths[i] = new TreePath(stepTreeObject);
}
TreeParent treeParent = treeObject.getParent();
DatabaseObjectTreeObject parentTreeObject = null;
if (treeParent instanceof DatabaseObjectTreeObject)
parentTreeObject = (DatabaseObjectTreeObject) treeParent;
else
parentTreeObject = (DatabaseObjectTreeObject) treeParent.getParent();
if (parentTreeObject != null) {
// New IfThenElseStep step
IsInThenElseStep ifThenElseStep = new IsInThenElseStep();
// Set properties
ifThenElseStep.setSourceDefinition(isIn.getSourceDefinition());
ifThenElseStep.setTestDefinition(isIn.getTestDefinition());
ifThenElseStep.setComment(isIn.getComment());
ifThenElseStep.setCondition(isIn.getCondition());
ifThenElseStep.setEnabled(isIn.isEnabled());
ifThenElseStep.setOutput(isIn.isOutput());
ifThenElseStep.setName(isIn.getName());
ifThenElseStep.bNew = true;
ifThenElseStep.hasChanged = true;
// Add new IfThenElseStep step to parent
DatabaseObject parentDbo = isIn.getParent();
parentDbo.add(ifThenElseStep);
// Set correct order
if (parentDbo instanceof StepWithExpressions)
((StepWithExpressions) parentDbo).insertAtOrder(ifThenElseStep, isIn.priority);
else if (parentDbo instanceof Sequence)
((Sequence) parentDbo).insertAtOrder(ifThenElseStep, isIn.priority);
// Add Then/Else steps
ThenStep thenStep = new ThenStep();
thenStep.bNew = true;
ifThenElseStep.addStep(thenStep);
ElseStep elseStep = new ElseStep();
elseStep.bNew = true;
ifThenElseStep.addStep(elseStep);
// Add new IfThenElseStep step in Tree
StepTreeObject stepTreeObject = new StepTreeObject(explorerView.viewer, ifThenElseStep);
treeParent.addChild(stepTreeObject);
StepTreeObject thenTreeObject = new StepTreeObject(explorerView.viewer, thenStep);
stepTreeObject.addChild(thenTreeObject);
StepTreeObject elseTreeObject = new StepTreeObject(explorerView.viewer, elseStep);
stepTreeObject.addChild(elseTreeObject);
// Cut/Paste steps under Then step
if (selectedPaths.length > 0) {
new ClipboardAction(ConvertigoPlugin.clipboardManagerDND).cut(explorerView, selectedPaths, ProjectExplorerView.TREE_OBJECT_TYPE_DBO_STEP);
for (int i = 0; i < ConvertigoPlugin.clipboardManagerDND.objects.length; i++) {
ConvertigoPlugin.clipboardManagerDND.cutAndPaste(ConvertigoPlugin.clipboardManagerDND.objects[i], thenTreeObject);
}
ConvertigoPlugin.clipboardManagerDND.reset();
}
// Delete If step
long oldPriority = isIn.priority;
// Save oldName
String oldName = isIn.getName();
// Now delete
isIn.delete();
// Set name after deletion
ifThenElseStep.setName(oldName);
// Simulate move of If to IfThenElse
ifThenElseStep.getSequence().fireStepMoved(new StepEvent(ifThenElseStep, String.valueOf(oldPriority)));
parentTreeObject.hasBeenModified(true);
explorerView.reloadTreeObject(parentTreeObject);
explorerView.setSelectedTreeObject(explorerView.findTreeObjectByUserObject(ifThenElseStep));
}
}
// For IfExistThenElse step
if ((databaseObject != null) && (databaseObject instanceof IfExistThenElseStep)) {
IfExistThenElseStep ifExistThenElse = (IfExistThenElseStep) databaseObject;
if (ifExistThenElse.hasThenElseSteps()) {
TreeParent treeParent = treeObject.getParent();
DatabaseObjectTreeObject parentTreeObject = null;
if (treeParent instanceof DatabaseObjectTreeObject)
parentTreeObject = (DatabaseObjectTreeObject) treeParent;
else
parentTreeObject = (DatabaseObjectTreeObject) treeParent.getParent();
if (parentTreeObject != null) {
// New IsInThenElse step
IsInThenElseStep isInThenElse = new IsInThenElseStep();
// Set properties
isInThenElse.setSourceDefinition(ifExistThenElse.getSourceDefinition());
isInThenElse.setComment(ifExistThenElse.getComment());
isInThenElse.setCondition(ifExistThenElse.getCondition());
isInThenElse.setEnabled(ifExistThenElse.isEnabled());
isInThenElse.setOutput(ifExistThenElse.isOutput());
isInThenElse.setName(ifExistThenElse.getName());
isInThenElse.bNew = true;
isInThenElse.hasChanged = true;
// Add new IsInThenElse step to parent
DatabaseObject parentDbo = ifExistThenElse.getParent();
parentDbo.add(isInThenElse);
// Set correct order
if (parentDbo instanceof StepWithExpressions)
((StepWithExpressions) parentDbo).insertAtOrder(isInThenElse, ifExistThenElse.priority);
else if (parentDbo instanceof Sequence)
((Sequence) parentDbo).insertAtOrder(isInThenElse, ifExistThenElse.priority);
// Add Then/Else steps
ThenStep thenStep = ifExistThenElse.getThenStep();
ElseStep elseStep = ifExistThenElse.getElseStep();
thenStep.bNew = true;
elseStep.bNew = true;
isInThenElse.addStep(thenStep);
isInThenElse.addStep(elseStep);
// Add new IsInThenElse step in Tree
StepTreeObject stepTreeObject = new StepTreeObject(explorerView.viewer, isInThenElse);
treeParent.addChild(new StepTreeObject(explorerView.viewer, isInThenElse));
stepTreeObject.addChild(new StepTreeObject(explorerView.viewer, thenStep));
stepTreeObject.addChild(new StepTreeObject(explorerView.viewer, elseStep));
// Delete ifExistThenElse step
long oldPriority = ifExistThenElse.priority;
// Save oldName
String oldName = ifExistThenElse.getName();
// Now delete
ifExistThenElse.delete();
// Set name after deletion
isInThenElse.setName(oldName);
// Simulate move of ifExistThenElse to IsInThenElse step
isInThenElse.getSequence().fireStepMoved(new StepEvent(isInThenElse, String.valueOf(oldPriority)));
parentTreeObject.hasBeenModified(true);
explorerView.reloadTreeObject(parentTreeObject);
explorerView.setSelectedTreeObject(explorerView.findTreeObjectByUserObject(isInThenElse));
}
}
}
}
} catch (Throwable e) {
ConvertigoPlugin.logException(e, "Unable to change step to IsInThenElse step!");
} finally {
shell.setCursor(null);
waitCursor.dispose();
}
}
use of com.twinsoft.convertigo.eclipse.views.projectexplorer.ProjectExplorerView in project convertigo by convertigo.
the class ChangeToScEntryHandlerStatementAction method run.
/* (non-Javadoc)
* @see com.twinsoft.convertigo.eclipse.popup.actions.MyAbstractAction#run()
*/
@Override
public void run() {
Display display = Display.getDefault();
Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
Shell shell = getParentShell();
shell.setCursor(waitCursor);
try {
ProjectExplorerView explorerView = getProjectExplorerView();
if (explorerView != null) {
DatabaseObjectTreeObject treeObject = (DatabaseObjectTreeObject) explorerView.getFirstSelectedTreeObject();
DatabaseObject databaseObject = treeObject.getObject();
// For ScExitHandler statement
if ((databaseObject != null) && (databaseObject instanceof ScExitHandlerStatement || databaseObject instanceof ScExitDefaultHandlerStatement)) {
HandlerStatement scExitHandlerStatement = (HandlerStatement) databaseObject;
DatabaseObjectTreeObject parentTreeObject = treeObject.getOwnerDatabaseObjectTreeObject();
if (parentTreeObject != null) {
// New ScEntryHandler statement
HandlerStatement scEntryHandlerStatement = databaseObject instanceof ScExitHandlerStatement ? new ScEntryHandlerStatement() : new ScEntryDefaultHandlerStatement();
// Set properties
String handlerResult = scExitHandlerStatement.getHandlerResult();
if (ScHandlerStatement.RETURN_ACCUMULATE.equals(handlerResult)) {
handlerResult = ScHandlerStatement.RETURN_REDETECT;
}
scEntryHandlerStatement.setHandlerResult(handlerResult);
scEntryHandlerStatement.setComment(scExitHandlerStatement.getComment());
scEntryHandlerStatement.setEnabled(scExitHandlerStatement.isEnabled());
scEntryHandlerStatement.setPreventFromLoops(scExitHandlerStatement.preventFromLoops());
scEntryHandlerStatement.setParent(scExitHandlerStatement.getParent());
scEntryHandlerStatement.setReturnedValue(scExitHandlerStatement.getReturnedValue());
scEntryHandlerStatement.setVersion(scExitHandlerStatement.getVersion());
if (databaseObject instanceof ScExitHandlerStatement) {
ScExitHandlerStatement scExit = (ScExitHandlerStatement) scExitHandlerStatement;
ScEntryHandlerStatement scEntry = (ScEntryHandlerStatement) scEntryHandlerStatement;
scEntry.setNormalizedScreenClassName(scExit.getNormalizedScreenClassName());
scEntry.setName("on" + scExit.getNormalizedScreenClassName() + "Entry");
}
// Change status of ScEntryHandler statement
scEntryHandlerStatement.bNew = true;
scEntryHandlerStatement.hasChanged = true;
// Add new ScEntryHandler statement to parent
DatabaseObject parentDbo = scEntryHandlerStatement.getParent();
parentDbo.add(scEntryHandlerStatement);
for (Statement statement : scExitHandlerStatement.getStatements()) {
scEntryHandlerStatement.addStatement(statement);
}
// Delete ScExitHandler statement
scExitHandlerStatement.delete();
parentTreeObject.hasBeenModified(true);
explorerView.reloadTreeObject(parentTreeObject);
DatabaseObjectTreeObject newTreeObject = parentTreeObject.findDatabaseObjectTreeObjectChild(scEntryHandlerStatement);
explorerView.setSelectedTreeObject(newTreeObject);
}
}
}
} catch (Throwable e) {
ConvertigoPlugin.logException(e, "Unable to change screen class exit handler statement to screen class entry handler statement!");
} finally {
shell.setCursor(null);
waitCursor.dispose();
}
}
Aggregations