use of com.twinsoft.convertigo.engine.EngineException in project convertigo by convertigo.
the class ClipboardManager method paste.
public Object paste(Node node, DatabaseObject parentDatabaseObject, boolean bChangeName) throws EngineException {
Object object = read(node);
if (object instanceof DatabaseObject) {
DatabaseObject databaseObject = (DatabaseObject) object;
String dboName = databaseObject.getName();
String name = null;
if (objectsType != ProjectExplorerView.TREE_OBJECT_TYPE_DBO_PROJECT) {
// Verify if object is accepted for paste
if (!DatabaseObjectsManager.acceptDatabaseObjects(parentDatabaseObject, databaseObject)) {
throw new EngineException("You cannot paste to a " + parentDatabaseObject.getClass().getSimpleName() + " a database object of type " + databaseObject.getClass().getSimpleName());
}
if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.MobileComponent) {
if (!com.twinsoft.convertigo.beans.mobile.components.dynamic.ComponentManager.acceptDatabaseObjects(parentDatabaseObject, databaseObject)) {
throw new EngineException("You cannot paste to a " + parentDatabaseObject.getClass().getSimpleName() + " a database object of type " + databaseObject.getClass().getSimpleName());
}
if (!com.twinsoft.convertigo.beans.mobile.components.dynamic.ComponentManager.isTplCompatible(parentDatabaseObject, databaseObject)) {
String tplVersion = com.twinsoft.convertigo.beans.mobile.components.dynamic.ComponentManager.getTplRequired(databaseObject);
throw new EngineException("Template project " + tplVersion + " compatibility required");
}
} else if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.MobileComponent) {
if (!com.twinsoft.convertigo.beans.ngx.components.dynamic.ComponentManager.acceptDatabaseObjects(parentDatabaseObject, databaseObject)) {
throw new EngineException("You cannot paste to a " + parentDatabaseObject.getClass().getSimpleName() + " a database object of type " + databaseObject.getClass().getSimpleName());
}
if (!com.twinsoft.convertigo.beans.ngx.components.dynamic.ComponentManager.isTplCompatible(parentDatabaseObject, databaseObject)) {
String tplVersion = com.twinsoft.convertigo.beans.ngx.components.dynamic.ComponentManager.getTplRequired(databaseObject);
throw new EngineException("Template project " + tplVersion + " compatibility required");
}
}
// Disable the isDefault boolean flag when the connector is pasted
if (databaseObject instanceof Connector) {
Connector connector = (Connector) databaseObject;
if (connector.isDefault) {
connector.isDefault = false;
}
}
// Disable the isRoot boolean flag when the page is pasted
if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.PageComponent) {
com.twinsoft.convertigo.beans.mobile.components.PageComponent page = GenericUtils.cast(databaseObject);
if (page.isRoot) {
page.isRoot = false;
}
} else if (databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.PageComponent) {
com.twinsoft.convertigo.beans.ngx.components.PageComponent page = GenericUtils.cast(databaseObject);
if (page.isRoot) {
page.isRoot = false;
}
}
if (objectsType != ProjectExplorerView.TREE_OBJECT_TYPE_DBO_CONNECTOR) {
// Disable the isDefault boolean flag when the transaction is pasted
if (databaseObject instanceof Transaction) {
Transaction transaction = (Transaction) databaseObject;
if (transaction.isDefault) {
transaction.isDefault = false;
}
}
}
}
// Special case of project
if (databaseObject instanceof Project) {
return databaseObject;
}
boolean bContinue = true;
boolean bIncName = false;
long oldPriority = databaseObject.priority;
// Verify if a child object with same name exist and change name
while (bContinue) {
if (bIncName) {
dboName = DatabaseObject.incrementName(dboName);
databaseObject.setName(dboName);
}
databaseObject.hasChanged = true;
databaseObject.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(databaseObject);
find |= isInstance;
return isInstance;
}
@Override
protected void walk(DatabaseObject dbo) throws Exception {
if (root) {
root = false;
super.walk(dbo);
if (!find) {
// ignore: we must accept special paste: e.g. transaction over sequence
}
} else {
if (databaseObject.getName().equalsIgnoreCase(dbo.getName())) {
throw new ObjectWithSameNameException("Unable to paste the object because an object with the same name already exists in target.");
}
}
}
}.init(parentDatabaseObject);
bContinue = false;
} catch (ObjectWithSameNameException owsne) {
if ((parentDatabaseObject instanceof HtmlTransaction) && (databaseObject instanceof Statement)) {
throw new EngineException("HtmlTransaction already contains a statement named \"" + name + "\".", owsne);
}
if (bChangeName) {
bIncName = true;
}
} catch (EngineException ee) {
throw ee;
} catch (Exception e) {
throw new EngineException("Exception in paste", e);
}
}
// reset ordered properties
if (databaseObject instanceof IContainerOrdered) {
// Mobile beans
if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.MobileComponent) {
if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.ApplicationComponent) {
com.twinsoft.convertigo.beans.mobile.components.ApplicationComponent ac = GenericUtils.cast(databaseObject);
ac.setOrderedRoutes(getNewOrdered());
ac.setOrderedMenus(getNewOrdered());
ac.setOrderedPages(getNewOrdered());
ac.setOrderedComponents(getNewOrdered());
ac.setOrderedSharedActions(getNewOrdered());
ac.setOrderedSharedComponents(getNewOrdered());
}
if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.RouteComponent) {
com.twinsoft.convertigo.beans.mobile.components.RouteComponent rc = GenericUtils.cast(databaseObject);
rc.setOrderedActions(getNewOrdered());
rc.setOrderedEvents(getNewOrdered());
}
if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.PageComponent) {
com.twinsoft.convertigo.beans.mobile.components.PageComponent pc = GenericUtils.cast(databaseObject);
pc.setOrderedComponents(getNewOrdered());
}
if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIComponent) {
com.twinsoft.convertigo.beans.mobile.components.UIComponent uic = GenericUtils.cast(databaseObject);
uic.setOrderedComponents(getNewOrdered());
}
} else if (databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.MobileComponent) {
if (databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.ApplicationComponent) {
com.twinsoft.convertigo.beans.ngx.components.ApplicationComponent ac = GenericUtils.cast(databaseObject);
ac.setOrderedMenus(getNewOrdered());
ac.setOrderedPages(getNewOrdered());
ac.setOrderedComponents(getNewOrdered());
ac.setOrderedSharedActions(getNewOrdered());
ac.setOrderedSharedComponents(getNewOrdered());
}
if (databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.PageComponent) {
com.twinsoft.convertigo.beans.ngx.components.PageComponent pc = GenericUtils.cast(databaseObject);
pc.setOrderedComponents(getNewOrdered());
}
if (databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIComponent) {
com.twinsoft.convertigo.beans.ngx.components.UIComponent uic = GenericUtils.cast(databaseObject);
uic.setOrderedComponents(getNewOrdered());
}
}
// Sequence beans
if (databaseObject instanceof Sequence) {
((Sequence) databaseObject).setOrderedSteps(getNewOrdered());
((Sequence) databaseObject).setOrderedVariables(getNewOrdered());
}
if (databaseObject instanceof StepWithExpressions) {
((StepWithExpressions) databaseObject).setOrderedSteps(getNewOrdered());
}
if (databaseObject instanceof RequestableStep) {
((RequestableStep) databaseObject).setOrderedVariables(getNewOrdered());
}
// Transaction beans
if (databaseObject instanceof TransactionWithVariables) {
((TransactionWithVariables) databaseObject).setOrderedVariables(getNewOrdered());
}
if (databaseObject instanceof StatementWithExpressions) {
((StatementWithExpressions) databaseObject).setOrderedStatements(getNewOrdered());
}
if (databaseObject instanceof HTTPStatement) {
((HTTPStatement) databaseObject).setOrderedVariables(getNewOrdered());
}
if (databaseObject instanceof ScreenClass) {
((ScreenClass) databaseObject).setOrderedCriterias(getNewOrdered());
((ScreenClass) databaseObject).setOrderedExtractionRules(getNewOrdered());
}
// TestCase bean
if (databaseObject instanceof TestCase) {
((TestCase) databaseObject).setOrderedVariables(getNewOrdered());
}
}
// Now add dbo to target
try {
if (parentDatabaseObject instanceof ScreenClass) {
if (parentDatabaseObject instanceof JavelinScreenClass) {
JavelinScreenClass screenClass = (JavelinScreenClass) parentDatabaseObject;
if (databaseObject instanceof BlockFactory) {
screenClass.add(databaseObject);
screenClass.setBlockFactory((BlockFactory) databaseObject);
}
}
ScreenClass screenClass = (ScreenClass) parentDatabaseObject;
if (databaseObject instanceof Criteria) {
if ((!screenClass.bNew) && (screenClass.equals(((IScreenClassContainer<?>) screenClass.getConnector()).getDefaultScreenClass()))) {
throw new EngineException("You cannot paste a new criterion to the default screen class");
}
databaseObject.priority = databaseObject.getNewOrderValue();
screenClass.add(databaseObject);
} else if (databaseObject instanceof ExtractionRule) {
databaseObject.priority = databaseObject.getNewOrderValue();
screenClass.add(databaseObject);
} else if (databaseObject instanceof Sheet) {
screenClass.add(databaseObject);
} else if (databaseObject instanceof ScreenClass) {
databaseObject.priority = screenClass.priority + 1;
screenClass.add(databaseObject);
}
} else if (parentDatabaseObject instanceof HtmlTransaction) {
HtmlTransaction transaction = (HtmlTransaction) parentDatabaseObject;
if (databaseObject instanceof Sheet) {
transaction.add(databaseObject);
} else if (databaseObject instanceof TestCase) {
transaction.add(databaseObject);
} else if (databaseObject instanceof Variable) {
databaseObject.priority = databaseObject.getNewOrderValue();
transaction.add(databaseObject);
} else if (databaseObject instanceof FunctionStatement) {
if (databaseObject instanceof StatementWithExpressions) {
databaseObject.priority = 0;
}
transaction.add(databaseObject);
} else {
throw new EngineException("You cannot paste to an HtmlTransaction a database object of type " + databaseObject.getClass().getName());
}
} else if (parentDatabaseObject instanceof TransactionWithVariables) {
TransactionWithVariables transaction = (TransactionWithVariables) parentDatabaseObject;
if (databaseObject instanceof Sheet) {
transaction.add(databaseObject);
} else if (databaseObject instanceof TestCase) {
transaction.add(databaseObject);
} else if (databaseObject instanceof Variable) {
databaseObject.priority = databaseObject.getNewOrderValue();
transaction.add(databaseObject);
}
} else if (parentDatabaseObject instanceof Sequence) {
Sequence sequence = (Sequence) parentDatabaseObject;
if (databaseObject instanceof Sheet) {
sequence.add(databaseObject);
} else if (databaseObject instanceof TestCase) {
sequence.add(databaseObject);
} else if (databaseObject instanceof Step) {
databaseObject.priority = databaseObject.getNewOrderValue();
sequence.add(databaseObject);
} else if (databaseObject instanceof Variable) {
databaseObject.priority = databaseObject.getNewOrderValue();
sequence.add(databaseObject);
} else {
throw new EngineException("You cannot paste to a Sequence a database object of type " + databaseObject.getClass().getName());
}
} else if (parentDatabaseObject instanceof StatementWithExpressions) {
StatementWithExpressions statement = (StatementWithExpressions) parentDatabaseObject;
databaseObject.priority = databaseObject.getNewOrderValue();
statement.add(databaseObject);
} else if (parentDatabaseObject instanceof HTTPStatement) {
HTTPStatement statement = (HTTPStatement) parentDatabaseObject;
if (databaseObject instanceof Variable) {
databaseObject.priority = databaseObject.getNewOrderValue();
statement.add(databaseObject);
}
} else if (parentDatabaseObject instanceof StepWithExpressions) {
StepWithExpressions step = (StepWithExpressions) parentDatabaseObject;
databaseObject.priority = databaseObject.getNewOrderValue();
step.add(databaseObject);
} else if (parentDatabaseObject instanceof RequestableStep) {
RequestableStep step = (RequestableStep) parentDatabaseObject;
if (databaseObject instanceof Variable) {
databaseObject.priority = databaseObject.getNewOrderValue();
step.add(databaseObject);
}
} else if (parentDatabaseObject instanceof TestCase) {
TestCase testCase = (TestCase) parentDatabaseObject;
if (databaseObject instanceof Variable) {
databaseObject.priority = databaseObject.getNewOrderValue();
testCase.add(databaseObject);
}
} else // MOBILE COMPONENTS
if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.MobileComponent) {
if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.ApplicationComponent) {
com.twinsoft.convertigo.beans.mobile.components.ApplicationComponent app = GenericUtils.cast(parentDatabaseObject);
if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.PageComponent) {
databaseObject.priority = databaseObject.getNewOrderValue();
app.add(databaseObject);
} else if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.RouteComponent) {
databaseObject.priority = databaseObject.getNewOrderValue();
app.add(databaseObject);
} else if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIDynamicMenu) {
databaseObject.priority = databaseObject.getNewOrderValue();
app.add(databaseObject);
} else if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIComponent) {
databaseObject.priority = databaseObject.getNewOrderValue();
app.add(databaseObject);
}
} else if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.RouteComponent) {
com.twinsoft.convertigo.beans.mobile.components.RouteComponent route = GenericUtils.cast(parentDatabaseObject);
if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.RouteActionComponent) {
databaseObject.priority = databaseObject.getNewOrderValue();
com.twinsoft.convertigo.beans.mobile.components.RouteActionComponent rac = GenericUtils.cast(databaseObject);
int i = rac.getPage().lastIndexOf(".");
if (i != -1) {
String pageName = rac.getPage().substring(i);
String pageQName = route.getParent().getQName() + pageName;
rac.setPage(pageQName);
}
route.add(rac);
} else if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.RouteEventComponent) {
databaseObject.priority = databaseObject.getNewOrderValue();
route.add(databaseObject);
}
} else if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.PageComponent) {
com.twinsoft.convertigo.beans.mobile.components.PageComponent page = GenericUtils.cast(parentDatabaseObject);
if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIComponent) {
databaseObject.priority = databaseObject.getNewOrderValue();
page.add(databaseObject);
}
} else if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIDynamicMenu) {
com.twinsoft.convertigo.beans.mobile.components.UIDynamicMenu menu = GenericUtils.cast(parentDatabaseObject);
if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIComponent) {
databaseObject.priority = databaseObject.getNewOrderValue();
menu.add(databaseObject);
}
} else if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIComponent) {
com.twinsoft.convertigo.beans.mobile.components.UIComponent component = GenericUtils.cast(parentDatabaseObject);
databaseObject.priority = databaseObject.getNewOrderValue();
component.add(databaseObject);
}
} else // NGX COMPONENTS
if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.MobileComponent) {
if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.ApplicationComponent) {
com.twinsoft.convertigo.beans.ngx.components.ApplicationComponent app = GenericUtils.cast(parentDatabaseObject);
if (databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.PageComponent) {
databaseObject.priority = databaseObject.getNewOrderValue();
app.add(databaseObject);
} else if (databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIDynamicMenu) {
databaseObject.priority = databaseObject.getNewOrderValue();
app.add(databaseObject);
} else if (databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIComponent) {
databaseObject.priority = databaseObject.getNewOrderValue();
app.add(databaseObject);
}
} else if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.PageComponent) {
com.twinsoft.convertigo.beans.ngx.components.PageComponent page = GenericUtils.cast(parentDatabaseObject);
if (databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIComponent) {
databaseObject.priority = databaseObject.getNewOrderValue();
page.add(databaseObject);
}
} else if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIDynamicMenu) {
com.twinsoft.convertigo.beans.ngx.components.UIDynamicMenu menu = GenericUtils.cast(parentDatabaseObject);
if (databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIComponent) {
databaseObject.priority = databaseObject.getNewOrderValue();
menu.add(databaseObject);
}
} else if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIComponent) {
com.twinsoft.convertigo.beans.ngx.components.UIComponent component = GenericUtils.cast(parentDatabaseObject);
databaseObject.priority = databaseObject.getNewOrderValue();
component.add(databaseObject);
}
} else if (parentDatabaseObject == null) {
if (databaseObject instanceof Project) {
if (Engine.theApp.databaseObjectsManager.existsProject(databaseObject.getName())) {
throw new ObjectWithSameNameException("Project already exist!");
}
}
} else {
parentDatabaseObject.add(databaseObject);
}
} catch (ObjectWithSameNameException owsne) {
if ((parentDatabaseObject instanceof HtmlTransaction) && (databaseObject instanceof Statement)) {
throw new EngineException("HtmlTransaction already contains a statement named \"" + name + "\".", owsne);
}
if ((parentDatabaseObject instanceof Sequence) && (databaseObject instanceof Step)) {
throw new EngineException("Sequence already contains a step named \"" + name + "\".", owsne);
}
}
NodeList childNodes = node.getChildNodes();
int len = childNodes.getLength();
Node childNode;
String childNodeName;
for (int i = 0; i < len; i++) {
childNode = childNodes.item(i);
if (childNode.getNodeType() != Node.ELEMENT_NODE) {
continue;
}
childNodeName = childNode.getNodeName();
if (!(childNodeName.equalsIgnoreCase("property")) && !(childNodeName.equalsIgnoreCase("handlers")) && !(childNodeName.equalsIgnoreCase("wsdltype")) && !(childNodeName.equalsIgnoreCase("docdata")) && !(childNodeName.equalsIgnoreCase("dnd"))) {
paste(childNode, databaseObject, bChangeName);
}
}
// For update of sources which reference this step
if (databaseObject instanceof Step) {
pastedSteps.put(String.valueOf(oldPriority), (Step) databaseObject);
}
// For update of sources which reference this mobile component
if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.MobileComponent) {
if (databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.IAction || databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIActionStack || databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIControlDirective || databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIForm || databaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UISharedComponent) {
pastedComponents.put(String.valueOf(oldPriority), GenericUtils.cast(databaseObject));
}
} else if (databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.MobileComponent) {
if (databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.IAction || databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIActionStack || databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIControlDirective || databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIForm || databaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UISharedComponent) {
pastedComponents.put(String.valueOf(oldPriority), GenericUtils.cast(databaseObject));
}
}
// needed
databaseObject.isImporting = false;
databaseObject.isSubLoaded = true;
return databaseObject;
} else if (object instanceof JsonData) {
if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.MobileComponent) {
if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIPageEvent || parentDatabaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIAppEvent || parentDatabaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIDynamicAction || parentDatabaseObject instanceof com.twinsoft.convertigo.beans.mobile.components.UIActionStack) {
JsonData jsonData = (JsonData) object;
JSONObject json = jsonData.getData();
if (json.has("qname")) {
try {
com.twinsoft.convertigo.beans.mobile.components.UIComponent uiComponent = GenericUtils.cast(parentDatabaseObject);
DatabaseObject call = com.twinsoft.convertigo.beans.mobile.components.dynamic.ComponentManager.createBean(com.twinsoft.convertigo.beans.mobile.components.dynamic.ComponentManager.getComponentByName("FullSyncViewAction"));
if (call != null && call instanceof com.twinsoft.convertigo.beans.mobile.components.UIDynamicAction) {
com.twinsoft.convertigo.beans.mobile.components.UIDynamicAction dynAction = GenericUtils.cast(call);
com.twinsoft.convertigo.beans.mobile.components.dynamic.IonBean ionBean = dynAction.getIonBean();
if (ionBean != null && ionBean.hasProperty("fsview")) {
call.bNew = true;
call.hasChanged = true;
ionBean.setPropertyValue("fsview", new com.twinsoft.convertigo.beans.mobile.components.MobileSmartSourceType(json.getString("qname")));
uiComponent.add(call);
uiComponent.hasChanged = true;
}
return call;
}
} catch (JSONException e) {
Engine.logStudio.warn("Failed to create a FullSyncViewAction", e);
}
}
}
} else if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.MobileComponent) {
if (parentDatabaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIPageEvent || parentDatabaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UISharedComponentEvent || parentDatabaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIAppEvent || parentDatabaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIDynamicAction || parentDatabaseObject instanceof com.twinsoft.convertigo.beans.ngx.components.UIActionStack) {
JsonData jsonData = (JsonData) object;
JSONObject json = jsonData.getData();
if (json.has("qname")) {
try {
com.twinsoft.convertigo.beans.ngx.components.UIComponent uiComponent = GenericUtils.cast(parentDatabaseObject);
DatabaseObject call = com.twinsoft.convertigo.beans.ngx.components.dynamic.ComponentManager.createBean(com.twinsoft.convertigo.beans.ngx.components.dynamic.ComponentManager.getComponentByName("FullSyncViewAction"));
if (call != null && call instanceof com.twinsoft.convertigo.beans.ngx.components.UIDynamicAction) {
com.twinsoft.convertigo.beans.ngx.components.UIDynamicAction dynAction = GenericUtils.cast(call);
com.twinsoft.convertigo.beans.ngx.components.dynamic.IonBean ionBean = dynAction.getIonBean();
if (ionBean != null && ionBean.hasProperty("fsview")) {
call.bNew = true;
call.hasChanged = true;
ionBean.setPropertyValue("fsview", new com.twinsoft.convertigo.beans.ngx.components.MobileSmartSourceType(json.getString("qname")));
uiComponent.add(call);
uiComponent.hasChanged = true;
}
return call;
}
} catch (JSONException e) {
Engine.logStudio.warn("Failed to create a FullSyncViewAction", e);
}
}
}
}
}
return null;
}
use of com.twinsoft.convertigo.engine.EngineException in project convertigo by convertigo.
the class ClipboardManager method read.
public Object read(Node node) throws EngineException {
Class<?> objectClass = null;
Object object = null;
Element element = (Element) node;
String objectClassName = element.getAttribute("classname");
try {
objectClass = Class.forName(objectClassName);
Method readMethod = objectClass.getMethod("read", new Class[] { Node.class });
object = readMethod.invoke(null, new Object[] { node });
} catch (Exception e) {
throw new EngineException("Unable to read object", e);
}
return object;
}
use of com.twinsoft.convertigo.engine.EngineException in project convertigo by convertigo.
the class ClipboardManager method read.
public List<Object> read(String xmlData) throws SAXException, IOException {
List<Object> objectList = new ArrayList<Object>();
if (xmlData != null) {
DocumentBuilder builder = XMLUtils.getDefaultDocumentBuilder();
// avoid 'content not allowed in prolog' to be printed out
builder.setErrorHandler(null);
Document document = builder.parse(new InputSource(new StringReader(xmlData)));
Element rootElement = document.getDocumentElement();
NodeList nodeList = rootElement.getChildNodes();
int len = nodeList.getLength();
Object object;
Node node;
for (int i = 0; i < len; i++) {
node = (Node) nodeList.item(i);
if (node.getNodeType() != Node.TEXT_NODE) {
try {
object = read(node);
objectList.add(object);
} catch (EngineException e) {
}
}
}
}
return objectList;
}
use of com.twinsoft.convertigo.engine.EngineException in project convertigo by convertigo.
the class ClipboardManager method copy.
public String copy(TreePath[] treePaths) throws EngineException {
ProjectExplorerView projectExplorerView = ConvertigoPlugin.getDefault().getProjectExplorerView();
clipboardDocument = XMLUtils.getDefaultDocumentBuilder().newDocument();
ProcessingInstruction pi = clipboardDocument.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"ISO-8859-1\"");
clipboardDocument.appendChild(pi);
clipboardRootElement = clipboardDocument.createElement("convertigo-clipboard");
clipboardDocument.appendChild(clipboardRootElement);
TreePath[] selectedPaths = ((treePaths == null) ? projectExplorerView.getSelectionPaths() : treePaths);
treeObjectsList = new ArrayList<TreeObject>();
treeParentsList = new ArrayList<TreeObject>();
for (int i = 0; i < selectedPaths.length; i++) {
TreeObject treeObject = (TreeObject) selectedPaths[i].getLastPathComponent();
if (treeObject instanceof DatabaseObjectTreeObject) {
DatabaseObjectTreeObject databaseObjectTreeObject = (DatabaseObjectTreeObject) treeObject;
DatabaseObjectTreeObject parentDatabaseObjectTreeObject = databaseObjectTreeObject.getParentDatabaseObjectTreeObject();
treeObjectsList.add(databaseObjectTreeObject);
treeParentsList.add(parentDatabaseObjectTreeObject);
copyDatabaseObject((DatabaseObject) databaseObjectTreeObject.getObject());
} else if (treeObject instanceof IPropertyTreeObject) {
IPropertyTreeObject propertyTreeObject = (IPropertyTreeObject) treeObject;
treeObjectsList.add(treeObject);
treeParentsList.add(((IPropertyTreeObject) treeObject).getTreeObjectOwner());
copyPropertyObject(propertyTreeObject);
} else if (treeObject instanceof IDesignTreeObject) {
IDesignTreeObject designTreeObject = (IDesignTreeObject) treeObject;
treeObjectsList.add(treeObject);
treeParentsList.add(((IDesignTreeObject) treeObject).getTreeObjectOwner());
copyDesignObject(designTreeObject);
} else {
throw new EngineException("Tree item not supported :" + treeObject.getClass().getName());
}
}
objects = treeObjectsList.toArray(new Object[selectedPaths.length]);
parentTreeNodeOfCutObjects = treeParentsList.toArray(new TreeObject[selectedPaths.length]);
String strObject = XMLUtils.prettyPrintDOM(clipboardDocument);
return strObject;
}
use of com.twinsoft.convertigo.engine.EngineException in project convertigo by convertigo.
the class TreeObjectSorter method compare.
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
if ((e1 instanceof DatabaseObjectTreeObject) && (e2 instanceof DatabaseObjectTreeObject)) {
DatabaseObject d1 = ((DatabaseObjectTreeObject) e1).getObject();
DatabaseObject d2 = ((DatabaseObjectTreeObject) e2).getObject();
DatabaseObjectTreeObject p1 = ((DatabaseObjectTreeObject) e1).getOwnerDatabaseObjectTreeObject();
DatabaseObjectTreeObject p2 = ((DatabaseObjectTreeObject) e2).getOwnerDatabaseObjectTreeObject();
if (p1.equals(p2)) {
DatabaseObject p = (DatabaseObject) p1.getObject();
try {
Object o1 = p.getOrder(d1);
Object o2 = p.getOrder(d2);
if ((o1 instanceof Long) && (o2 instanceof Long)) {
long l1 = ((Long) o1).longValue();
long l2 = ((Long) o2).longValue();
int dp = (int) (l1 - l2);
if (dp != 0)
return dp;
}
} catch (EngineException e) {
ConvertigoPlugin.logException(e, "Error while sorting objects \"" + d1.getQName() + "\" and \"" + d2.getQName() + "\" in Tree.");
}
}
} else if ((e1 instanceof PropertyTableRowTreeObject) && (e2 instanceof PropertyTableRowTreeObject)) {
PropertyTableRowTreeObject r1 = (PropertyTableRowTreeObject) e1;
PropertyTableRowTreeObject r2 = (PropertyTableRowTreeObject) e2;
int i1 = r1.getParent().indexOf(r1);
int i2 = r2.getParent().indexOf(r2);
return i1 - i2;
} else if ((e1 instanceof PropertyTableColumnTreeObject) && (e2 instanceof PropertyTableColumnTreeObject)) {
PropertyTableColumnTreeObject c1 = (PropertyTableColumnTreeObject) e1;
PropertyTableColumnTreeObject c2 = (PropertyTableColumnTreeObject) e2;
int i1 = c1.getParent().indexOf(c1);
int i2 = c2.getParent().indexOf(c2);
return i1 - i2;
} else if ((e1 instanceof ObjectsFolderTreeObject) && !(e2 instanceof ObjectsFolderTreeObject)) {
return -1;
} else if (!(e1 instanceof ObjectsFolderTreeObject) && (e2 instanceof ObjectsFolderTreeObject)) {
return 1;
}
return super.compare(viewer, e1, e2);
}
Aggregations