Search in sources :

Example 6 with TVObject

use of com.twinsoft.convertigo.eclipse.views.mobile.MobilePickerContentProvider.TVObject in project convertigo by convertigo.

the class MobilePickerComposite method makeUI.

private void makeUI(Composite parent) {
    parent.setLayout(new GridLayout(1, false));
    parent.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
    SelectionListener listener = new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            final MobilePickerContentProvider contentProvider = (MobilePickerContentProvider) checkboxTreeViewer.getContentProvider();
            if (contentProvider != null) {
                btnSequence.setSelection(false);
                btnDatabase.setSelection(false);
                btnAction.setSelection(false);
                btnShared.setSelection(false);
                btnIteration.setSelection(false);
                btnForm.setSelection(false);
                btnGlobal.setSelection(false);
                ToolItem button = (ToolItem) e.widget;
                button.setSelection(true);
                if (btnSequence.getSelection()) {
                    contentProvider.setFilterBy(Filter.Sequence);
                } else if (btnDatabase.getSelection()) {
                    contentProvider.setFilterBy(Filter.Database);
                } else if (btnAction.getSelection()) {
                    contentProvider.setFilterBy(Filter.Action);
                } else if (btnShared.getSelection()) {
                    contentProvider.setFilterBy(Filter.Shared);
                } else if (btnIteration.getSelection()) {
                    contentProvider.setFilterBy(Filter.Iteration);
                } else if (btnForm.getSelection()) {
                    contentProvider.setFilterBy(Filter.Form);
                } else if (btnGlobal.getSelection()) {
                    contentProvider.setFilterBy(Filter.Global);
                }
                modelTreeViewer.setInput(null);
                checkboxTreeViewer.getTree().removeAll();
                checkboxTreeViewer.refresh();
                initTreeSelection(checkboxTreeViewer, null);
            }
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
        }
    };
    SelectionListener c_listener = new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            boolean isCustom = b_custom.getSelection();
            boolean doSetCustomText = false;
            if (isParentDialog) {
                MobileSmartSource cs = MobileSmartSource.valueOf(currentSource);
                if (cs != null && cs.getModel() != null && cs.getModel().getCustom().isEmpty()) {
                    doSetCustomText = true;
                }
            } else {
                doSetCustomText = true;
            }
            if (doSetCustomText) {
                MobileSmartSource nmss = MobileSmartSource.valueOf(getSmartSourceString());
                if (nmss != null) {
                    if (isCustom && !t_custom.getEnabled()) {
                        t_custom.setText(nmss.getModel().computeValue());
                    }
                    if (!isCustom && t_custom.getEnabled()) {
                        t_custom.setText("");
                    }
                }
            }
            t_custom.setEnabled(isCustom);
            t_prefix.setEnabled(!isCustom);
            t_data.setEnabled(!isCustom);
            t_suffix.setEnabled(!isCustom);
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
        }
    };
    headerComposite = new Composite(parent, SWT.NONE);
    headerComposite.setLayout(SwtUtils.newGridLayout(2, false, 0, 0, 0, 0));
    headerComposite.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false, 1, 1));
    ToolBar toolbar = new ToolBar(headerComposite, SWT.NONE);
    int btnStyle = SWT.CHECK;
    Image image = null;
    btnSequence = new ToolItem(toolbar, btnStyle);
    try {
        image = ConvertigoPlugin.getDefault().getIconFromPath("/com/twinsoft/convertigo/beans/core/images/sequence_color_16x16.png", BeanInfo.ICON_COLOR_16x16);
    } catch (Exception e) {
        btnSequence.setText("SQ");
    }
    btnSequence.setImage(image);
    btnSequence.setToolTipText("Show Sequence Sources");
    btnSequence.addSelectionListener(listener);
    btnSequence.setSelection(true);
    btnDatabase = new ToolItem(toolbar, btnStyle);
    try {
        image = ConvertigoPlugin.getDefault().getIconFromPath("/com/twinsoft/convertigo/beans/connectors/images/fullsyncconnector_color_16x16.png", BeanInfo.ICON_COLOR_16x16);
    } catch (Exception e) {
        btnDatabase.setText("FS");
    }
    btnDatabase.setImage(image);
    btnDatabase.setToolTipText("Show FullSync Databases Sources");
    btnDatabase.addSelectionListener(listener);
    btnAction = new ToolItem(toolbar, btnStyle);
    try {
        image = ConvertigoPlugin.getDefault().getIconFromPath("/com/twinsoft/convertigo/beans/mobile/components/images/uicustomaction_color_16x16.png", BeanInfo.ICON_COLOR_16x16);
    } catch (Exception e) {
        btnAction.setText("AC");
    }
    btnAction.setImage(image);
    btnAction.setToolTipText("Show Action Sources");
    btnAction.addSelectionListener(listener);
    btnShared = new ToolItem(toolbar, btnStyle);
    try {
        image = ConvertigoPlugin.getDefault().getIconFromPath("/com/twinsoft/convertigo/beans/mobile/components/images/uisharedcomponent_color_16x16.png", BeanInfo.ICON_COLOR_16x16);
    } catch (Exception e) {
        btnShared.setText("SH");
    }
    btnShared.setImage(image);
    btnShared.setToolTipText("Show Shared component Sources");
    btnShared.addSelectionListener(listener);
    btnIteration = new ToolItem(toolbar, btnStyle);
    try {
        image = ConvertigoPlugin.getDefault().getIconFromPath("/com/twinsoft/convertigo/beans/steps/images/iterator_16x16.png", BeanInfo.ICON_COLOR_16x16);
    } catch (Exception e) {
        btnIteration.setText("IT");
    }
    btnIteration.setImage(image);
    btnIteration.setToolTipText("Show Iterators on current page Sources");
    btnIteration.addSelectionListener(listener);
    btnForm = new ToolItem(toolbar, btnStyle);
    try {
        image = ConvertigoPlugin.getDefault().getIconFromPath("/com/twinsoft/convertigo/beans/mobile/components/images/uiform_color_16x16.png", BeanInfo.ICON_COLOR_16x16);
    } catch (Exception e) {
        btnForm.setText("FM");
    }
    btnForm.setImage(image);
    btnForm.setToolTipText("Show Forms on current page Sources");
    btnForm.addSelectionListener(listener);
    btnGlobal = new ToolItem(toolbar, btnStyle);
    try {
        image = ConvertigoPlugin.getDefault().getIconFromPath("/com/twinsoft/convertigo/beans/mobile/components/dynamic/images/setglobalaction_color_16x16.png", BeanInfo.ICON_COLOR_16x16);
    } catch (Exception e) {
        btnGlobal.setText("GS");
    }
    btnGlobal.setImage(image);
    btnGlobal.setToolTipText("Show Global Shared objects");
    btnGlobal.addSelectionListener(listener);
    message = new Label(headerComposite, SWT.NONE);
    message.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    SashForm treesSashForm = new SashForm(parent, SWT.NONE);
    treesSashForm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    checkboxTreeViewer = new CheckboxTreeViewer(treesSashForm, SWT.BORDER | SWT.SINGLE);
    checkboxTreeViewer.setContentProvider(new MobilePickerContentProvider());
    checkboxTreeViewer.addCheckStateListener(new ICheckStateListener() {

        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            Object element = event.getElement();
            if (element instanceof TVObject) {
                if (btnIteration.getSelection() || btnForm.getSelection() || btnGlobal.getSelection()) {
                    checkboxTreeViewer.setChecked(element, !event.getChecked());
                    return;
                }
                TVObject tvoChecked = (TVObject) element;
                if (event.getChecked())
                    checkedList.add(tvoChecked);
                else
                    checkedList.remove(tvoChecked);
                updateGrayChecked();
                updateTexts();
            }
        }
    });
    checkboxTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            Object selected = ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (selected instanceof TVObject && !selected.equals(lastSelected)) {
                TVObject tvoSelected = (TVObject) selected;
                lastSelected = selected;
                if (firstSelected == null) {
                    firstSelected = selected;
                }
                checkedList.clear();
                checkedList.add(tvoSelected);
                modelTreeViewer.setInput(null);
                updateModel(tvoSelected);
                updateGrayChecked();
                updateTexts();
            }
        }
    });
    modelTreeViewer = new TreeViewer(treesSashForm, SWT.BORDER);
    modelTreeViewer.setContentProvider(new MobilePickerContentProvider());
    modelTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            Object selected = ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (selected instanceof TVObject) {
                updateTexts();
            }
        }
    });
    treesSashForm.setWeights(new int[] { 1, 1 });
    Composite sourceComposite = new Composite(parent, SWT.NONE);
    sourceComposite.setLayout(new GridLayout(2, false));
    sourceComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    if (isParentDialog) {
        l_source = new Label(sourceComposite, SWT.NONE);
        ((Label) l_source).setText(" SOURCE ");
    } else {
        l_source = new Button(sourceComposite, SWT.NONE);
        ((Button) l_source).setText(" SOURCE ");
        l_source.setToolTipText("Drag me on a Mobile UI component in the project tree to bind this source to an UI component property");
    }
    Composite dataComposite = new Composite(sourceComposite, SWT.NONE);
    dataComposite.setLayout(new GridLayout(2, false));
    dataComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    Label l_prefix = new Label(dataComposite, SWT.NONE);
    l_prefix.setText("Prefix");
    t_prefix = new Text(dataComposite, SWT.BORDER);
    t_prefix.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    Label l_data = new Label(dataComposite, SWT.NONE);
    l_data.setText("Data");
    t_data = new Text(dataComposite, SWT.BORDER | SWT.READ_ONLY);
    t_data.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    Label l_suffix = new Label(dataComposite, SWT.NONE);
    l_suffix.setText("Suffix");
    t_suffix = new Text(dataComposite, SWT.BORDER);
    t_suffix.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    b_custom = new Button(dataComposite, SWT.CHECK);
    b_custom.setText("Custom");
    b_custom.addSelectionListener(c_listener);
    t_custom = new Text(dataComposite, SWT.BORDER);
    t_custom.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    t_custom.setEnabled(false);
    // Add DND support
    boolean dragEnabled = !isParentDialog;
    if (dragEnabled) {
        Transfer[] dragTransfers = new Transfer[] { MobileSourceTransfer.getInstance() };
        int operations = DND.DROP_COPY | DND.DROP_MOVE;
        DragSourceAdapter dragAdapter = new DragSourceAdapter() {

            @Override
            public void dragStart(DragSourceEvent event) {
                try {
                    String jsonString = getSmartSourceString();
                    if (jsonString != null && !jsonString.isEmpty()) {
                        event.doit = true;
                        MobileSourceTransfer.getInstance().setMobileSource(new MobileSource(jsonString));
                    }
                } catch (Exception e) {
                    ConvertigoPlugin.logException(e, "Cannot drag");
                }
            }
        };
        DragSource source = null;
        source = new DragSource(modelTreeViewer.getTree(), operations);
        source.setTransfer(dragTransfers);
        source.addDragListener(dragAdapter);
        source = new DragSource(l_source, operations);
        source.setTransfer(dragTransfers);
        source.addDragListener(dragAdapter);
    }
}
Also used : TVObject(com.twinsoft.convertigo.eclipse.views.mobile.MobilePickerContentProvider.TVObject) ICheckStateListener(org.eclipse.jface.viewers.ICheckStateListener) TreeViewer(org.eclipse.jface.viewers.TreeViewer) CheckboxTreeViewer(org.eclipse.jface.viewers.CheckboxTreeViewer) Label(org.eclipse.swt.widgets.Label) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) Image(org.eclipse.swt.graphics.Image) DragSourceEvent(org.eclipse.swt.dnd.DragSourceEvent) GridLayout(org.eclipse.swt.layout.GridLayout) Button(org.eclipse.swt.widgets.Button) SelectionEvent(org.eclipse.swt.events.SelectionEvent) ToolItem(org.eclipse.swt.widgets.ToolItem) DragSourceAdapter(org.eclipse.swt.dnd.DragSourceAdapter) Composite(org.eclipse.swt.widgets.Composite) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) Text(org.eclipse.swt.widgets.Text) DragSource(org.eclipse.swt.dnd.DragSource) MobileSource(com.twinsoft.convertigo.eclipse.dnd.MobileSource) PartInitException(org.eclipse.ui.PartInitException) JSONException(org.codehaus.jettison.json.JSONException) CheckboxTreeViewer(org.eclipse.jface.viewers.CheckboxTreeViewer) SashForm(org.eclipse.swt.custom.SashForm) MobileSmartSource(com.twinsoft.convertigo.beans.mobile.components.MobileSmartSource) GridData(org.eclipse.swt.layout.GridData) ToolBar(org.eclipse.swt.widgets.ToolBar) Transfer(org.eclipse.swt.dnd.Transfer) MobileSourceTransfer(com.twinsoft.convertigo.eclipse.dnd.MobileSourceTransfer) DatabaseObject(com.twinsoft.convertigo.beans.core.DatabaseObject) JSONObject(org.codehaus.jettison.json.JSONObject) TVObject(com.twinsoft.convertigo.eclipse.views.mobile.MobilePickerContentProvider.TVObject) MobileUIComponentTreeObject(com.twinsoft.convertigo.eclipse.views.projectexplorer.model.MobileUIComponentTreeObject) XmlSchemaObject(org.apache.ws.commons.schema.XmlSchemaObject) RequestableObject(com.twinsoft.convertigo.beans.core.RequestableObject) MobilePageComponentTreeObject(com.twinsoft.convertigo.eclipse.views.projectexplorer.model.MobilePageComponentTreeObject) MobileObject(com.twinsoft.convertigo.beans.core.MobileObject) MobileComponentTreeObject(com.twinsoft.convertigo.eclipse.views.projectexplorer.model.MobileComponentTreeObject) CheckStateChangedEvent(org.eclipse.jface.viewers.CheckStateChangedEvent) SelectionListener(org.eclipse.swt.events.SelectionListener)

Example 7 with TVObject

use of com.twinsoft.convertigo.eclipse.views.mobile.MobilePickerContentProvider.TVObject in project convertigo by convertigo.

the class MobilePickerComposite method lookupModelData.

private Map<String, Object> lookupModelData(TVObject tvObject) {
    Map<String, Object> data = new HashMap<String, Object>();
    Map<String, String> params = new HashMap<String, String>();
    DatabaseObject dbo = null;
    String searchPath = "";
    Object object = tvObject.getObject();
    JSONObject infos = tvObject.getInfos();
    if (object != null) {
        try {
            if (object instanceof RequestableObject) {
                dbo = (RequestableObject) object;
                searchPath = "";
            } else if (object instanceof DesignDocument) {
                dbo = (DesignDocument) object;
                DesignDocument dd = (DesignDocument) dbo;
                params.put("ddoc", dd.getName());
                params.put("view", tvObject.getParent().getName());
                params.put("include_docs", infos.has("include_docs") ? infos.getString("include_docs") : "false");
                searchPath = tvObject.getName().startsWith("get") ? ".rows.value" : "";
            } else if (object instanceof UIControlDirective) {
                dbo = (UIControlDirective) object;
                do {
                    UIControlDirective directive = (UIControlDirective) dbo;
                    String rootDboName = "";
                    if (directive.getPage() != null) {
                        rootDboName = directive.getPage().getName();
                    } else if (directive.getMenu() != null) {
                        rootDboName = directive.getMenu().getName();
                    }
                    MobileSmartSourceType msst = directive.getSourceSmartType();
                    MobileSmartSource mss = msst.getSmartSource();
                    if (mss != null) {
                        dbo = mss.getDatabaseObject(rootDboName);
                        params.putAll(mss.getParameters());
                        searchPath = mss.getModelPath().replaceAll("\\?\\.", ".") + searchPath;
                    } else {
                        dbo = null;
                    }
                } while (dbo != null && dbo instanceof UIControlDirective);
            } else if (object instanceof UIForm) {
                dbo = (UIForm) object;
                searchPath = "";
            } else if (object instanceof ApplicationComponent) {
                dbo = (ApplicationComponent) object;
                params.put("json", infos.toString());
                searchPath = "";
            } else if (object instanceof UIActionStack) {
                dbo = (UIActionStack) object;
                searchPath = "";
            } else if (object instanceof IAction) {
                if (object instanceof UIDynamicAction) {
                    dbo = (UIDynamicAction) object;
                    searchPath = "";
                } else if (object instanceof UICustomAction) {
                    dbo = (UICustomAction) object;
                    searchPath = "";
                }
            } else if (object instanceof UISharedComponent) {
                dbo = (UISharedComponent) object;
                searchPath = "";
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    data.put("databaseObject", dbo);
    data.put("params", params);
    data.put("searchPath", searchPath);
    return data;
}
Also used : RequestableObject(com.twinsoft.convertigo.beans.core.RequestableObject) IAction(com.twinsoft.convertigo.beans.mobile.components.IAction) HashMap(java.util.HashMap) MobileSmartSourceType(com.twinsoft.convertigo.beans.mobile.components.MobileSmartSourceType) ApplicationComponent(com.twinsoft.convertigo.beans.mobile.components.ApplicationComponent) UIControlDirective(com.twinsoft.convertigo.beans.mobile.components.UIControlDirective) UIForm(com.twinsoft.convertigo.beans.mobile.components.UIForm) UISharedComponent(com.twinsoft.convertigo.beans.mobile.components.UISharedComponent) PartInitException(org.eclipse.ui.PartInitException) JSONException(org.codehaus.jettison.json.JSONException) UIActionStack(com.twinsoft.convertigo.beans.mobile.components.UIActionStack) MobileSmartSource(com.twinsoft.convertigo.beans.mobile.components.MobileSmartSource) UIDynamicAction(com.twinsoft.convertigo.beans.mobile.components.UIDynamicAction) JSONObject(org.codehaus.jettison.json.JSONObject) DesignDocument(com.twinsoft.convertigo.beans.couchdb.DesignDocument) DatabaseObject(com.twinsoft.convertigo.beans.core.DatabaseObject) UICustomAction(com.twinsoft.convertigo.beans.mobile.components.UICustomAction) DatabaseObject(com.twinsoft.convertigo.beans.core.DatabaseObject) JSONObject(org.codehaus.jettison.json.JSONObject) TVObject(com.twinsoft.convertigo.eclipse.views.mobile.MobilePickerContentProvider.TVObject) MobileUIComponentTreeObject(com.twinsoft.convertigo.eclipse.views.projectexplorer.model.MobileUIComponentTreeObject) XmlSchemaObject(org.apache.ws.commons.schema.XmlSchemaObject) RequestableObject(com.twinsoft.convertigo.beans.core.RequestableObject) MobilePageComponentTreeObject(com.twinsoft.convertigo.eclipse.views.projectexplorer.model.MobilePageComponentTreeObject) MobileObject(com.twinsoft.convertigo.beans.core.MobileObject) MobileComponentTreeObject(com.twinsoft.convertigo.eclipse.views.projectexplorer.model.MobileComponentTreeObject)

Example 8 with TVObject

use of com.twinsoft.convertigo.eclipse.views.mobile.MobilePickerContentProvider.TVObject in project convertigo by convertigo.

the class MobilePickerComposite method getModelPath.

private String getModelPath() {
    String path = "";
    ITreeSelection selection = modelTreeViewer.getStructuredSelection();
    if (selection != null && !selection.isEmpty()) {
        TVObject tvo = (TVObject) selection.getFirstElement();
        path = tvo.getPath();
    }
    return path;
}
Also used : TVObject(com.twinsoft.convertigo.eclipse.views.mobile.MobilePickerContentProvider.TVObject) ITreeSelection(org.eclipse.jface.viewers.ITreeSelection)

Example 9 with TVObject

use of com.twinsoft.convertigo.eclipse.views.mobile.MobilePickerContentProvider.TVObject in project convertigo by convertigo.

the class MobilePickerComposite method findModelItem.

private TVObject findModelItem(TreeItem parent, String modelPath) {
    if (modelPath != null && !modelPath.isEmpty()) {
        TreeItem[] items = null;
        items = parent == null ? modelTreeViewer.getTree().getItems() : parent.getItems();
        for (int i = 0; i < items.length; i++) {
            TreeItem treeItem = items[i];
            TVObject tvo = (TVObject) treeItem.getData();
            if (tvo != null) {
                String tvoPath = tvo.getPath().replaceAll("\\?\\.", ".");
                if (modelPath.startsWith(tvoPath.replaceFirst("root", ""))) {
                    if (modelPath.equals(tvoPath.replaceFirst("root", ""))) {
                        return tvo;
                    }
                    return findModelItem(items[i], modelPath);
                }
            }
        }
    }
    return null;
}
Also used : TVObject(com.twinsoft.convertigo.eclipse.views.mobile.MobilePickerContentProvider.TVObject) TreeItem(org.eclipse.swt.widgets.TreeItem)

Aggregations

TVObject (com.twinsoft.convertigo.eclipse.views.mobile.MobilePickerContentProvider.TVObject)9 DatabaseObject (com.twinsoft.convertigo.beans.core.DatabaseObject)5 MobileObject (com.twinsoft.convertigo.beans.core.MobileObject)5 RequestableObject (com.twinsoft.convertigo.beans.core.RequestableObject)5 MobileComponentTreeObject (com.twinsoft.convertigo.eclipse.views.projectexplorer.model.MobileComponentTreeObject)5 MobilePageComponentTreeObject (com.twinsoft.convertigo.eclipse.views.projectexplorer.model.MobilePageComponentTreeObject)5 MobileUIComponentTreeObject (com.twinsoft.convertigo.eclipse.views.projectexplorer.model.MobileUIComponentTreeObject)5 XmlSchemaObject (org.apache.ws.commons.schema.XmlSchemaObject)5 JSONObject (org.codehaus.jettison.json.JSONObject)5 MobileSmartSource (com.twinsoft.convertigo.beans.mobile.components.MobileSmartSource)3 JSONException (org.codehaus.jettison.json.JSONException)3 TreeItem (org.eclipse.swt.widgets.TreeItem)3 PartInitException (org.eclipse.ui.PartInitException)3 HashMap (java.util.HashMap)2 DesignDocument (com.twinsoft.convertigo.beans.couchdb.DesignDocument)1 ApplicationComponent (com.twinsoft.convertigo.beans.mobile.components.ApplicationComponent)1 IAction (com.twinsoft.convertigo.beans.mobile.components.IAction)1 SourceData (com.twinsoft.convertigo.beans.mobile.components.MobileSmartSource.SourceData)1 MobileSmartSourceType (com.twinsoft.convertigo.beans.mobile.components.MobileSmartSourceType)1 UIActionStack (com.twinsoft.convertigo.beans.mobile.components.UIActionStack)1