Search in sources :

Example 1 with UIStyle

use of com.twinsoft.convertigo.beans.mobile.components.UIStyle in project convertigo by convertigo.

the class MobileUIComponentTreeObject method openCssFileEditor.

private void openCssFileEditor() {
    final UIStyle ms = (UIStyle) getObject();
    String filePath = "/_private/editor/" + StringUtils.hash(ms.getParent().getQName()) + "/" + ms.getName() + ".scss";
    try {
        // Refresh project resource
        String projectName = ms.getProject().getName();
        IProject project = ConvertigoPlugin.getDefault().getProjectPluginResource(projectName);
        // Close editor
        IFile file = project.getFile(filePath);
        closeComponentFileEditor(file);
        // Write css file
        SwtUtils.fillFile(file, formatStyleContent(ms));
        // Open file in editor
        if (file.exists()) {
            IEditorInput input = new ComponentFileEditorInput(file, ms);
            if (input != null) {
                String editorId = "org.eclipse.ui.genericeditor.GenericEditor";
                IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
                IEditorPart editorPart = activePage.openEditor(input, editorId);
                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 content = unformatStyleContent(ms, doc.get());
                                if (content != null) {
                                    FormatedContent formatedContent = new FormatedContent(content);
                                    MobileUIComponentTreeObject.this.setPropertyValue("styleContent", formatedContent);
                                }
                            }
                        }
                    }
                });
            }
        }
    } catch (CoreException e) {
        ConvertigoPlugin.logException(e, "Unable to open file '" + filePath + "'!");
    }
}
Also used : IFile(org.eclipse.core.resources.IFile) ITextEditor(org.eclipse.ui.texteditor.ITextEditor) ComponentFileEditorInput(com.twinsoft.convertigo.eclipse.editors.mobile.ComponentFileEditorInput) IEditorPart(org.eclipse.ui.IEditorPart) IProject(org.eclipse.core.resources.IProject) IPropertyListener(org.eclipse.ui.IPropertyListener) IDocumentProvider(org.eclipse.ui.texteditor.IDocumentProvider) CoreException(org.eclipse.core.runtime.CoreException) UIStyle(com.twinsoft.convertigo.beans.mobile.components.UIStyle) IWorkbenchPage(org.eclipse.ui.IWorkbenchPage) DatabaseObject(com.twinsoft.convertigo.beans.core.DatabaseObject) FormatedContent(com.twinsoft.convertigo.beans.common.FormatedContent) IEditorInput(org.eclipse.ui.IEditorInput) IDocument(org.eclipse.jface.text.IDocument)

Example 2 with UIStyle

use of com.twinsoft.convertigo.beans.mobile.components.UIStyle in project convertigo by convertigo.

the class MobileUIComponentTreeObject method launchEditor.

@Override
public void launchEditor(String editorType) {
    UIComponent uic = getObject();
    if (uic instanceof UICustom) {
        openHtmlFileEditor();
    } else if (uic instanceof UIStyle) {
        openCssFileEditor();
    } else if (uic instanceof UICustomAction) {
        String functionMarker = "function:" + ((UICustomAction) uic).getActionName();
        editFunction(uic, functionMarker, "actionValue");
    } else if (uic instanceof UIFormCustomValidator) {
        String functionMarker = "function:" + ((UIFormCustomValidator) uic).getValidatorName();
        editFunction(uic, functionMarker, "validatorValue");
    } else {
        super.launchEditor(editorType);
    }
}
Also used : UICustom(com.twinsoft.convertigo.beans.mobile.components.UICustom) UIStyle(com.twinsoft.convertigo.beans.mobile.components.UIStyle) UIComponent(com.twinsoft.convertigo.beans.mobile.components.UIComponent) UICustomAction(com.twinsoft.convertigo.beans.mobile.components.UICustomAction) UIFormCustomValidator(com.twinsoft.convertigo.beans.mobile.components.UIFormCustomValidator)

Aggregations

UIStyle (com.twinsoft.convertigo.beans.mobile.components.UIStyle)2 FormatedContent (com.twinsoft.convertigo.beans.common.FormatedContent)1 DatabaseObject (com.twinsoft.convertigo.beans.core.DatabaseObject)1 UIComponent (com.twinsoft.convertigo.beans.mobile.components.UIComponent)1 UICustom (com.twinsoft.convertigo.beans.mobile.components.UICustom)1 UICustomAction (com.twinsoft.convertigo.beans.mobile.components.UICustomAction)1 UIFormCustomValidator (com.twinsoft.convertigo.beans.mobile.components.UIFormCustomValidator)1 ComponentFileEditorInput (com.twinsoft.convertigo.eclipse.editors.mobile.ComponentFileEditorInput)1 IFile (org.eclipse.core.resources.IFile)1 IProject (org.eclipse.core.resources.IProject)1 CoreException (org.eclipse.core.runtime.CoreException)1 IDocument (org.eclipse.jface.text.IDocument)1 IEditorInput (org.eclipse.ui.IEditorInput)1 IEditorPart (org.eclipse.ui.IEditorPart)1 IPropertyListener (org.eclipse.ui.IPropertyListener)1 IWorkbenchPage (org.eclipse.ui.IWorkbenchPage)1 IDocumentProvider (org.eclipse.ui.texteditor.IDocumentProvider)1 ITextEditor (org.eclipse.ui.texteditor.ITextEditor)1