use of com.twinsoft.convertigo.beans.core.Project in project convertigo by convertigo.
the class StepView method openJscriptStepEditor.
private void openJscriptStepEditor() {
Project project = dbo.getProject();
try {
// Create private folder if it does not exist
FileUtils.createFolderIfNotExist(project.getDirPath(), "_private");
String fileName = FileUtils.createTmpFileWithUTF8Data(project.getDirPath(), "_private" + "/" + Base64.encodeBase64URLSafeString(DigestUtils.sha1(dbo.getQName())) + " " + dbo.getName() + "." + JSCRIPT_STEP_EDITOR, ((SimpleStep) dbo).getExpression());
studio.createResponse(new OpenEditableEditorActionResponse(project.getQName() + "/" + "_private" + "/" + fileName, JSCRIPT_STEP_EDITOR).toXml(studio.getDocument(), getObject().getQName()));
} catch (Exception e) {
}
}
use of com.twinsoft.convertigo.beans.core.Project in project convertigo by convertigo.
the class TransactionView method openJscriptTransactionEditor.
private void openJscriptTransactionEditor() {
Project project = dbo.getProject();
try {
FileUtils.createFolderIfNotExist(project.getDirPath(), "_private");
String fileName = FileUtils.createTmpFileWithUTF8Data(project.getDirPath(), "_private" + "/" + dbo.getProject().getName() + "__" + getObject().getConnector().getName() + "__" + getObject().getName() + "." + JSCRIPT_TRANSACTION_EDITOR, getObject().handlers);
studio.createResponse(new OpenEditableEditorActionResponse(project.getQName() + "/_private/" + fileName, JSCRIPT_TRANSACTION_EDITOR).toXml(studio.getDocument(), getObject().getQName()));
} catch (Exception e) {
}
}
use of com.twinsoft.convertigo.beans.core.Project in project convertigo by convertigo.
the class SourcePickerHelperWrap method displayTargetWsdlDom.
public void displayTargetWsdlDom(DatabaseObject dbo) {
try {
if (dbo instanceof Step) {
Step step = (Step) dbo;
String xpath = getSourceXPath();
String anchor = step.getAnchor();
Document stepDoc = null;
Step targetStep = step;
while (targetStep instanceof IteratorStep) {
targetStep = getTargetStep(targetStep);
}
if (targetStep != null) {
Project project = step.getProject();
XmlSchema schema = Engine.theApp.schemaManager.getSchemaForProject(project.getName(), Option.fullSchema);
XmlSchemaObject xso = SchemaMeta.getXmlSchemaObject(schema, targetStep);
if (xso != null) {
stepDoc = XmlSchemaUtils.getDomInstance(xso);
}
}
if (stepDoc != null) /* && !(targetStep instanceof IteratorStep)*/
{
// stepDoc can be null for non "xml" step : e.g jIf
Document doc = step.getSequence().createDOM();
Element root = (Element) doc.importNode(stepDoc.getDocumentElement(), true);
doc.replaceChild(root, doc.getDocumentElement());
removeUserDefinedNodes(doc.getDocumentElement());
boolean shouldDisplayDom = (!(!step.isXml() && (step instanceof StepWithExpressions) && !(step instanceof IteratorStep)));
if ((doc != null) && (shouldDisplayDom)) {
xpath = onDisplayXhtml(xpath);
displayXhtml(doc);
xpathEvaluator.removeAnchor();
xpathEvaluator.displaySelectionXpathWithAnchor(twsDomTree, anchor, xpath);
return;
}
}
}
} catch (Exception e) {
// ConvertigoPlugin.logException(e, StringUtils.readStackTraceCauses(e));
}
clean();
}
use of com.twinsoft.convertigo.beans.core.Project in project convertigo by convertigo.
the class DatabaseObjectDeleteAction method run2.
@Override
protected void run2() throws Exception {
String qname = null;
try {
treeNodesToUpdate = new ArrayList<WrapDatabaseObject>();
WrapDatabaseObject treeObject = null;
WrapObject[] treeObjects = studio.getSelectedObjects().toArray(new WrapObject[0]);
dboDoDelete = new HashMap<>(treeObjects.length);
if (treeObjects != null) {
MultipleDeletionDialog dialog = new MultipleDeletionDialog(studio, "Object Deletion", treeObjects.length > 1);
for (int i = 0; i < treeObjects.length; ++i) {
treeObject = (WrapDatabaseObject) treeObjects[i];
String message = treeObject.instanceOf(Project.class) ? java.text.MessageFormat.format("Do you really want to delete the project \"{0}\" and all its sub-objects?", new Object[] { treeObject.getName() }) : java.text.MessageFormat.format("Do you really want to delete the object \"{0}\" and all its sub-objects?", new Object[] { treeObject.getName() });
qname = ((DatabaseObject) treeObject.getObject()).getQName();
if (!dialog.shouldBeDeleted(message)) {
dboDoDelete.put(qname, false);
continue;
}
dboDoDelete.put(qname, true);
if (treeObject.instanceOf(Project.class)) {
((ProjectView) treeObject).closeAllEditors();
} else if (treeObject.instanceOf(Sequence.class)) {
((ProjectView) ((SequenceView) treeObject).getParent()).closeSequenceEditors((Sequence) treeObject.getObject());
} else if (treeObject.instanceOf(Connector.class)) {
((ProjectView) ((ConnectorView) treeObject).getParent()).closeConnectorEditors((Connector) treeObject.getObject());
} else if (treeObject.instanceOf(Step.class)) {
// // We close the editor linked with the SimpleStep (=SequenceJsStep)
// if (treeObject.getObject() instanceof SimpleStep) {
// boolean find = false;
// SimpleStep simpleStep = (SimpleStep) treeObject.getObject();
// IWorkbenchPage page = this.getActivePage();
// IEditorReference[] editors = page.getEditorReferences();
// int _i = 0;
// while (find != true && _i < editors.length) {
// IEditorReference editor = editors[_i];
// IEditorPart editorPart = page.findEditor(editor.getEditorInput());
// if (editorPart != null && editorPart instanceof JscriptStepEditor) {
// JscriptStepEditor jscriptEditor = (JscriptStepEditor) editorPart;
// if (jscriptEditor.getSimpleStepLinked().equals(simpleStep)) {
// find = true;
// page.activate(editorPart);
// page.closeEditor(editorPart, false);
// }
// }
// ++_i;
// }
}
delete(treeObject);
if (treeObject.instanceOf(Project.class)) {
// explorerView.removeProjectTreeObject(treeObject);
} else {
// // prevents treeObject and its childs to receive further TreeObjectEvents
// if (treeObject instanceof TreeObjectListener)
// explorerView.removeTreeObjectListener(treeObject);
// treeObject.removeAllChildren();
}
//
// explorerView.fireTreeObjectRemoved(new TreeObjectEvent(treeObject));
}
}
// Updating the tree and the properties panel
Enumeration<WrapDatabaseObject> enumeration = Collections.enumeration(treeNodesToUpdate);
WrapDatabaseObject parentTreeObject;
while (enumeration.hasMoreElements()) {
parentTreeObject = enumeration.nextElement();
if (parentTreeObject != null) {
// explorerView.reloadTreeObject(parentTreeObject);
// explorerView.setSelectedTreeObject(parentTreeObject);
}
}
//
// Refresh tree to show potential 'broken' steps
// explorerView.refreshTree();
} catch (Exception e) {
throw e;
}
}
use of com.twinsoft.convertigo.beans.core.Project in project convertigo by convertigo.
the class NewObjectWizard method doFinish.
private void doFinish(IProgressMonitor monitor) throws CoreException {
String dboName, name;
boolean bContinue = true;
int index = 0;
try {
int total = 0;
Class<?> c = getCreatedBeanClass();
if (c != null) {
total = 4;
if (c.equals(WebServiceReference.class)) {
total += ImportWsReference.getTotalTaskNumber();
}
}
monitor.beginTask("Creating new object", total);
newBean = getCreatedBean();
if (newBean != null) {
monitor.setTaskName("Object created");
monitor.worked(1);
dboName = newBean.getName();
if (!StringUtils.isNormalized(dboName))
throw new EngineException("Bean name is not normalized : \"" + dboName + "\".");
// Verify if a child object with same name exist and change name
while (bContinue) {
if (index == 0)
name = dboName;
else
name = dboName + index;
newBean.setName(name);
newBean.hasChanged = true;
newBean.bNew = true;
try {
new WalkHelper() {
boolean root = true;
boolean find = false;
@Override
protected boolean before(DatabaseObject dbo, Class<? extends DatabaseObject> dboClass) {
boolean isInstance = dboClass.isInstance(newBean);
find |= isInstance;
return isInstance;
}
@Override
protected void walk(DatabaseObject dbo) throws Exception {
if (root) {
root = false;
super.walk(dbo);
if (!find) {
throw new EngineException("You cannot add to a " + newBean.getClass().getSimpleName() + " a database object of type " + parentObject.getClass().getSimpleName());
}
} else {
if (newBean.getName().equalsIgnoreCase(dbo.getName())) {
throw new ObjectWithSameNameException("Unable to add the object because an object with the same name already exists in target.");
}
}
}
}.init(parentObject);
bContinue = false;
} catch (ObjectWithSameNameException owsne) {
if ((parentObject instanceof HtmlTransaction) && (newBean instanceof Statement)) {
throw new EngineException("HtmlTransaction already contains a statement named \"" + name + "\".", owsne);
}
// Silently ignore
index++;
} catch (EngineException ee) {
throw ee;
} catch (Exception e) {
throw new EngineException("Exception in create", e);
}
}
// Now add bean to target
try {
boolean hasChanged = parentObject.hasChanged;
if ((newBean instanceof Statement) && (parentObject instanceof Transaction)) {
newBean.priority = 0;
}
if (newBean instanceof ScreenClass)
newBean.priority = parentObject.priority + 1;
if (newBean instanceof Criteria) {
Connector connector = parentObject.getConnector();
if (parentObject.equals(((IScreenClassContainer<?>) connector).getDefaultScreenClass()))
throw new EngineException("You cannot add a new criterion on default screenclass.");
}
parentObject.add(newBean);
monitor.setTaskName("Object added");
monitor.worked(1);
if (newBean instanceof HTTPStatement) {
HTTPStatement httpStatement = (HTTPStatement) newBean;
HtmlConnector connector = (HtmlConnector) httpStatement.getParentTransaction().getParent();
httpStatement.setMethod("GET");
httpStatement.setHost(connector.getServer());
httpStatement.setPort(connector.getPort());
httpStatement.setHttps(connector.isHttps());
}
if (newBean instanceof ContinueWithSiteClipperStatement) {
Project project = newBean.getProject();
if (project != null) {
String[] connectorWithSiteClipperConnector = ContinueWithSiteClipperStatement.getSiteClippersConnectorNames(project);
if (connectorWithSiteClipperConnector.length > 0) {
((ContinueWithSiteClipperStatement) newBean).setSiteClipperConnectorName(connectorWithSiteClipperConnector[0]);
}
}
}
if (newBean instanceof Connector) {
Project project = (Project) parentObject;
if (project.getDefaultConnector() == null)
project.setDefaultConnector((Connector) newBean);
Connector.setupConnector(newBean);
}
if (newBean instanceof PageComponent) {
ApplicationComponent application = (ApplicationComponent) parentObject;
if (application.getRootPage() == null)
application.setRootPage((PageComponent) newBean);
}
if (newBean instanceof SequenceStep) {
Project project = newBean.getProject();
((SequenceStep) newBean).setSourceSequence(project.getName() + TransactionStep.SOURCE_SEPARATOR + project.getSequencesList().get(0));
}
if (newBean instanceof TransactionStep) {
Project project = newBean.getProject();
Connector connector = project.getDefaultConnector();
Transaction transaction = connector.getDefaultTransaction();
((TransactionStep) newBean).setSourceTransaction(project.getName() + TransactionStep.SOURCE_SEPARATOR + connector.getName() + TransactionStep.SOURCE_SEPARATOR + transaction.getName());
}
if (newBean instanceof IThenElseContainer) {
ThenStep thenStep = new ThenStep();
((IThenElseContainer) newBean).addStep(thenStep);
ElseStep elseStep = new ElseStep();
((IThenElseContainer) newBean).addStep(elseStep);
}
if (newBean instanceof IThenElseStatementContainer) {
ThenStatement thenStatement = new ThenStatement();
((IThenElseStatementContainer) newBean).addStatement(thenStatement);
ElseStatement elseStatement = new ElseStatement();
((IThenElseStatementContainer) newBean).addStatement(elseStatement);
}
if (newBean instanceof Sheet) {
InputStream is = null;
try {
String sheetName = newBean.getName() + ".xsl";
is = new FileInputStream(new File(Engine.XSL_PATH + "/customsheet.xsl"));
String projectName = ((DatabaseObject) parentObject).getProject().getName();
IProject project = ConvertigoPlugin.getDefault().getProjectPluginResource(projectName);
final IFile file = project.getFile(sheetName);
if (!file.exists())
file.create(is, true, null);
((Sheet) newBean).setUrl(sheetName);
} catch (Exception e) {
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
}
}
}
}
if (newBean instanceof TestCase) {
TestCase testCase = (TestCase) newBean;
testCase.importRequestableVariables((RequestableObject) testCase.getParent());
}
if (newBean instanceof RequestableHttpVariable) {
RequestableHttpVariable variable = (RequestableHttpVariable) newBean;
AbstractHttpTransaction httpTransaction = (AbstractHttpTransaction) variable.getParent();
HttpMethodType httpMethodType = httpTransaction.getHttpVerb();
boolean isVarPost = httpMethodType.equals(HttpMethodType.PUT) || httpMethodType.equals(HttpMethodType.POST);
variable.setHttpMethod(isVarPost ? HttpMethodType.POST.name() : HttpMethodType.GET.name());
}
if (newBean instanceof WebServiceReference) {
try {
Project project = (Project) parentObject;
WebServiceReference webServiceReference = (WebServiceReference) newBean;
ImportWsReference wsr = new ImportWsReference(webServiceReference);
wsr.importInto(project);
} catch (Exception e) {
if (newBean != null) {
parentObject.remove(newBean);
parentObject.hasChanged = hasChanged;
}
throw new Exception(e);
}
}
if (newBean instanceof RestServiceReference) {
try {
Project project = (Project) parentObject;
RestServiceReference restServiceReference = (RestServiceReference) newBean;
ImportWsReference wsr = new ImportWsReference(restServiceReference);
wsr.importInto(project);
} catch (Exception e) {
if (newBean != null) {
parentObject.remove(newBean);
parentObject.hasChanged = hasChanged;
}
throw new Exception(e);
}
}
if (newBean instanceof SqlTransaction) {
SqlTransaction sqlTransaction = (SqlTransaction) newBean;
sqlTransaction.setSqlQuery(sqlQueriesWizardPage.getSQLQueries());
sqlTransaction.initializeQueries(true);
}
if (newBean instanceof SapJcoLogonTransaction) {
SapJcoLogonTransaction sapLogonTransaction = (SapJcoLogonTransaction) newBean;
sapLogonTransaction.addCredentialsVariables();
}
if (objectInfoPage != null) {
objectInfoPage.doApply();
}
ConvertigoPlugin.logInfo("New object class '" + this.className + "' named '" + newBean.getName() + "' has been added");
monitor.setTaskName("Object setted up");
monitor.worked(1);
bContinue = false;
} catch (com.twinsoft.convertigo.engine.ObjectWithSameNameException owsne) {
if (newBean instanceof HandlerStatement) {
throw owsne;
}
}
} else {
throw new Exception("Could not instantiate bean!");
}
} catch (Exception e) {
String message = "Unable to create a new object from class '" + this.className + "'.";
ConvertigoPlugin.logException(e, message);
if (objectExplorerPage != null) {
objectExplorerPage.doCancel();
}
}
}
Aggregations