use of com.twinsoft.convertigo.beans.common.FormatedContent in project convertigo by convertigo.
the class UIStyle method preconfigure.
@Override
public void preconfigure(Element element) throws Exception {
super.preconfigure(element);
try {
NodeList properties = element.getElementsByTagName("property");
// migration of styleContent from String to FormatedContent
Element propElement = (Element) XMLUtils.findNodeByAttributeValue(properties, "name", "styleContent");
if (propElement != null) {
Element valueElement = (Element) XMLUtils.findChildNode(propElement, Node.ELEMENT_NODE);
if (valueElement != null) {
Document document = valueElement.getOwnerDocument();
Object content = XMLUtils.readObjectFromXml(valueElement);
if (content instanceof String) {
FormatedContent formated = new FormatedContent((String) content);
Element newValueElement = (Element) XMLUtils.writeObjectToXml(document, formated);
propElement.replaceChild(newValueElement, valueElement);
hasChanged = true;
Engine.logBeans.warn("(UIStyle) 'styleContent' has been updated for the object \"" + getName() + "\"");
}
}
}
} catch (Exception e) {
throw new EngineException("Unable to preconfigure the style component \"" + getName() + "\".", e);
}
}
use of com.twinsoft.convertigo.beans.common.FormatedContent in project convertigo by convertigo.
the class ApplicationComponent method addUIComponent.
protected void addUIComponent(UIComponent uiComponent, Long after) throws EngineException {
checkSubLoaded();
if (uiComponent instanceof UITheme) {
if (this.theme != null) {
throw new EngineException("The mobile application \"" + getName() + "\" already contains a theme! Please delete it first.");
} else {
UITheme uiTheme = (UITheme) uiComponent;
if (uiTheme.bNew) {
if (uiTheme.styleContent.getString().equals("")) {
uiTheme.styleContent = new FormatedContent(getThemeTplScss());
}
}
this.theme = uiTheme;
}
}
if (uiComponent instanceof UIAppGuard) {
UIAppGuard guard = (UIAppGuard) uiComponent;
if (guard.bNew) {
AppGuardType guardType = guard.getGuardType();
if (hasGuard(AppGuardType.onCanActivate) && hasGuard(AppGuardType.onCanDeactivate)) {
throw new EngineException("The mobile application \"" + getName() + "\" already contains a \"" + guardType.getTopic() + "\" guard! Please delete it first.");
}
if (guardType.equals(AppGuardType.onCanActivate) && hasGuard(AppGuardType.onCanActivate)) {
guard.setGuardType(AppGuardType.onCanDeactivate);
}
if (guardType.equals(AppGuardType.onCanDeactivate) && hasGuard(AppGuardType.onCanDeactivate)) {
guard.setGuardType(AppGuardType.onCanActivate);
}
}
}
boolean isNew = uiComponent.bNew;
boolean isCut = !isNew && uiComponent.getParent() == null && uiComponent.isSubLoaded;
String newDatabaseObjectName = getChildBeanName(vUIComponents, uiComponent.getName(), uiComponent.bNew);
uiComponent.setName(newDatabaseObjectName);
vUIComponents.add(uiComponent);
uiComponent.setParent(this);
insertOrderedComponent(uiComponent, after);
if (isNew || isCut) {
markApplicationAsDirty();
}
}
use of com.twinsoft.convertigo.beans.common.FormatedContent in project convertigo by convertigo.
the class MobileUIComponentTreeObject method editFunction.
private void editFunction(final UIComponent uic, final String functionMarker, final String propertyName) {
try {
IScriptComponent main = uic.getMainScriptComponent();
if (main == null) {
return;
}
// Refresh project resources for editor
String projectName = uic.getProject().getName();
IProject project = ConvertigoPlugin.getDefault().getProjectPluginResource(projectName);
project.refreshLocal(IResource.DEPTH_INFINITE, null);
// Close editor and Reopen it after file has been rewritten
String relativePath = uic.getProject().getMobileBuilder().getFunctionTempTsRelativePath(uic);
IFile file = project.getFile(relativePath);
if (!(uic instanceof UICustomAction)) {
closeComponentFileEditor(file);
}
if (main instanceof ApplicationComponent) {
if (uic.compareToTplVersion("7.5.2.0") < 0) {
ConvertigoPlugin.logError("The ability to use forms or actions inside a menu is avalaible since 7.5.2 version." + "\nPlease change your Template project for the 'mobilebuilder_tpl_7_5_2' template.", true);
return;
}
}
uic.getProject().getMobileBuilder().writeFunctionTempTsFile(uic, functionMarker);
file.refreshLocal(IResource.DEPTH_ZERO, null);
// Open file in editor
if (file.exists()) {
IEditorInput input = new ComponentFileEditorInput(file, uic);
if (input != null) {
IEditorDescriptor desc = PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(file.getName());
IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
String editorId = desc.getId();
IEditorPart editorPart = activePage.openEditor(input, editorId);
addMarkers(file, editorPart);
editorPart.addPropertyListener(new IPropertyListener() {
boolean isFirstChange = false;
@Override
public void propertyChanged(Object source, int propId) {
if (source instanceof ITextEditor) {
if (propId == IEditorPart.PROP_DIRTY) {
if (!isFirstChange) {
isFirstChange = true;
return;
}
isFirstChange = false;
ITextEditor editor = (ITextEditor) source;
IDocumentProvider dp = editor.getDocumentProvider();
IDocument doc = dp.getDocument(editor.getEditorInput());
String marker = MobileBuilder.getMarker(doc.get(), functionMarker);
String content = MobileBuilder.getFormatedContent(marker, functionMarker);
FormatedContent formated = new FormatedContent(content);
MobileUIComponentTreeObject.this.setPropertyValue(propertyName, formated);
}
}
}
});
}
}
} catch (Exception e) {
ConvertigoPlugin.logException(e, "Unable to edit function for '" + uic.getName() + "' component!");
}
}
use of com.twinsoft.convertigo.beans.common.FormatedContent in project convertigo by convertigo.
the class NgxUIComponentTreeObject method editCompTsFile.
public void editCompTsFile() {
if (!(getObject() instanceof ISharedComponent)) {
return;
}
final UISharedComponent comp = (UISharedComponent) getObject();
try {
// Refresh project resource
String projectName = comp.getProject().getName();
IProject project = ConvertigoPlugin.getDefault().getProjectPluginResource(projectName);
project.refreshLocal(IResource.DEPTH_INFINITE, null);
// Close editor
String filePath = comp.getProject().getMobileBuilder().getTempTsRelativePath((ISharedComponent) comp);
IFile file = project.getFile(filePath);
closeComponentFileEditor(file);
// Write temporary file
comp.getProject().getMobileBuilder().writeCompTempTs((ISharedComponent) comp);
file.refreshLocal(IResource.DEPTH_ZERO, null);
// Open file in editor
if (file.exists()) {
IEditorInput input = new ComponentFileEditorInput(file, comp);
if (input != null) {
IEditorDescriptor desc = PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(file.getName());
IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
String editorId = desc.getId();
IEditorPart editorPart = activePage.openEditor(input, editorId);
addMarkers(file, editorPart);
editorPart.addPropertyListener(new IPropertyListener() {
boolean isFirstChange = false;
@Override
public void propertyChanged(Object source, int propId) {
if (source instanceof ITextEditor) {
if (propId == IEditorPart.PROP_DIRTY) {
if (!isFirstChange) {
isFirstChange = true;
return;
}
isFirstChange = false;
ITextEditor editor = (ITextEditor) source;
IDocumentProvider dp = editor.getDocumentProvider();
IDocument doc = dp.getDocument(editor.getEditorInput());
FormatedContent scriptContent = new FormatedContent(MobileBuilder.getMarkers(doc.get()));
NgxUIComponentTreeObject.this.setPropertyValue("scriptContent", scriptContent);
}
}
}
});
}
}
} catch (Exception e) {
ConvertigoPlugin.logException(e, "Unable to open typescript file for component '" + comp.getName() + "'!");
}
}
use of com.twinsoft.convertigo.beans.common.FormatedContent in project convertigo by convertigo.
the class ApplicationComponent method addUIComponent.
protected void addUIComponent(UIComponent uiComponent, Long after) throws EngineException {
checkSubLoaded();
if (uiComponent instanceof UITheme) {
if (this.theme != null) {
throw new EngineException("The mobile application \"" + getName() + "\" already contains a theme! Please delete it first.");
} else {
UITheme uiTheme = (UITheme) uiComponent;
if (uiTheme.bNew) {
if (uiTheme.styleContent.getString().equals("")) {
uiTheme.styleContent = new FormatedContent(getThemeTplScss());
}
}
this.theme = uiTheme;
}
}
boolean isNew = uiComponent.bNew;
boolean isCut = !isNew && uiComponent.getParent() == null && uiComponent.isSubLoaded;
String newDatabaseObjectName = getChildBeanName(vUIComponents, uiComponent.getName(), uiComponent.bNew);
uiComponent.setName(newDatabaseObjectName);
vUIComponents.add(uiComponent);
uiComponent.setParent(this);
insertOrderedComponent(uiComponent, after);
if (isNew || isCut) {
markApplicationAsDirty();
}
}
Aggregations