Search in sources :

Example 6 with WSView

use of com.amalto.workbench.webservices.WSView in project tmdm-studio-se by Talend.

the class AddBrowseItemsWizard method createNewTreeObject.

private TreeObject createNewTreeObject(XSDElementDeclaration decl, String browseItem) {
    WSView view = new WSView();
    view.setIsTransformerActive(new WSBoolean(false));
    // $NON-NLS-1$
    view.setTransformerPK("");
    view.setName(browseItem);
    EList<XSDIdentityConstraintDefinition> idtylist = decl.getIdentityConstraintDefinitions();
    List<String> keys = new ArrayList<String>();
    for (XSDIdentityConstraintDefinition idty : idtylist) {
        EList<XSDXPathDefinition> xpathList = idty.getFields();
        for (XSDXPathDefinition path : xpathList) {
            String key = decl.getName();
            // remove
            // $NON-NLS-1$//$NON-NLS-2$
            key = key.replaceFirst("#.*", "");
            // $NON-NLS-1$
            key += "/" + path.getValue();
            keys.add(key);
        }
    }
    view.getSearchableBusinessElements().addAll(keys);
    view.getViewableBusinessElements().addAll(keys);
    StringBuffer desc = new StringBuffer();
    LinkedHashMap<String, String> labels = new LinkedHashMap<String, String>();
    if (decl.getAnnotation() != null) {
        labels = new XSDAnnotationsStructure(decl.getAnnotation()).getLabels();
    }
    if (labels.size() == 0) {
        // $NON-NLS-1$
        labels.put("EN", decl.getName());
    }
    for (String lan : labels.keySet()) {
        // $NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
        desc.append("[" + lan.toUpperCase() + ":" + labels.get(lan) + "]");
    }
    view.setDescription(desc.toString());
    WSPutView wrap = new WSPutView();
    wrap.setWsView(view);
    WSViewPK viewPk = new WSViewPK();
    viewPk.setPk(browseItem);
    WSDeleteView delView = new WSDeleteView();
    delView.setWsViewPK(viewPk);
    WSGetView getView = new WSGetView();
    getView.setWsViewPK(viewPk);
    service.putView(wrap);
    // add node in the root
    TreeParent root = page.getXObject().getServerRoot();
    TreeObject obj = new // no storage to save
    TreeObject(// no storage to save
    browseItem, // no storage to save
    root, // no storage to save
    TreeObject.VIEW, // no storage to save
    viewPk, // no storage to save
    null);
    return obj;
}
Also used : XSDAnnotationsStructure(com.amalto.workbench.utils.XSDAnnotationsStructure) TreeParent(com.amalto.workbench.models.TreeParent) ArrayList(java.util.ArrayList) WSDeleteView(com.amalto.workbench.webservices.WSDeleteView) WSView(com.amalto.workbench.webservices.WSView) LinkedHashMap(java.util.LinkedHashMap) WSPutView(com.amalto.workbench.webservices.WSPutView) XSDIdentityConstraintDefinition(org.eclipse.xsd.XSDIdentityConstraintDefinition) TreeObject(com.amalto.workbench.models.TreeObject) WSBoolean(com.amalto.workbench.webservices.WSBoolean) XSDXPathDefinition(org.eclipse.xsd.XSDXPathDefinition) WSGetView(com.amalto.workbench.webservices.WSGetView) WSViewPK(com.amalto.workbench.webservices.WSViewPK)

Example 7 with WSView

use of com.amalto.workbench.webservices.WSView in project tmdm-studio-se by Talend.

the class ViewBrowserMainPage method refreshData.

// createCharacteristicsContent
@Override
protected void refreshData() {
    try {
        if (viewableBEsList.isDisposed() || searchableBEsList.isDisposed() || wcListViewer.getList().isDisposed() || searchItemCombo.isDisposed() || dataClusterCombo.isDisposed()) {
            return;
        }
        WSView view = null;
        if (getXObject().getWsObject() == null) {
            // then fetch from server
            TMDMService port = getMDMService();
            view = port.getView(new WSGetView((WSViewPK) getXObject().getWsKey()));
            getXObject().setWsObject(view);
        } else {
            // it has been opened by an editor - use the object there
            view = (WSView) getXObject().getWsObject();
        }
        java.util.List<String> paths = view.getViewableBusinessElements();
        // Fill the vbe List
        viewableBEsList.removeAll();
        for (String path : paths) {
            viewableBEsList.add(path);
        }
        paths = view.getSearchableBusinessElements();
        searchableBEsList.removeAll();
        searchItemCombo.removeAll();
        if (paths != null) {
            for (String path : paths) {
                searchableBEsList.add(path);
                searchItemCombo.add(path);
            }
        }
        searchItemCombo.add(FULL_TEXT);
        searchItemCombo.setText(FULL_TEXT);
        wcListViewer.setInput(view);
        wcListViewer.refresh();
        dataClusterCombo.removeAll();
        java.util.List<WSDataClusterPK> dataClusterPKs = getDataClusterPKs();
        if ((dataClusterPKs == null) || (dataClusterPKs.size() == 0)) {
            MessageDialog.openError(this.getSite().getShell(), Messages._Error, Messages.ViewBrowserMainPage_ErrorMsg1);
            return;
        }
        for (WSDataClusterPK pk : dataClusterPKs) {
            dataClusterCombo.add(pk.getPk());
        }
        dataClusterCombo.select(0);
        clusterTypeCombo.setItems(getClusterTypes());
        clusterTypeCombo.select(0);
        this.getManagedForm().reflow(true);
        searchText.setFocus();
    } catch (Exception e) {
        log.error(e.getMessage(), e);
        if (!Util.handleConnectionException(this.getSite().getShell(), e, Messages.ViewBrowserMainPage_ErrorTitle2)) {
            MessageDialog.openError(this.getSite().getShell(), Messages.ViewBrowserMainPage_ErrorTitle2, Messages.bind(Messages.ViewBrowserMainPage_ErrorMsg2, e.getLocalizedMessage()));
        }
    }
}
Also used : WSDataClusterPK(com.amalto.workbench.webservices.WSDataClusterPK) TMDMService(com.amalto.workbench.webservices.TMDMService) WSGetView(com.amalto.workbench.webservices.WSGetView) WSView(com.amalto.workbench.webservices.WSView) XtentisException(com.amalto.workbench.utils.XtentisException) MalformedURLException(java.net.MalformedURLException)

Example 8 with WSView

use of com.amalto.workbench.webservices.WSView in project tmdm-studio-se by Talend.

the class ViewBrowserMainPage method createCharacteristicsContent.

@Override
protected void createCharacteristicsContent(FormToolkit toolkit, Composite charComposite) {
    try {
        Label vbeLabel = toolkit.createLabel(charComposite, Messages.ViewBrowserMainPage_ViewableElements, SWT.NULL);
        vbeLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1));
        Label sbeLabel = toolkit.createLabel(charComposite, Messages.ViewBrowserMainPage_SearchableElements, SWT.NULL);
        sbeLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1));
        viewableBEsList = new List(charComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
        viewableBEsList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
        ((GridData) viewableBEsList.getLayoutData()).heightHint = 100;
        searchableBEsList = new List(charComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
        searchableBEsList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
        ((GridData) searchableBEsList.getLayoutData()).heightHint = 100;
        Label wcLabel = toolkit.createLabel(charComposite, Messages.ViewBrowserMainPage_Conditions, SWT.NULL);
        wcLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 2, 1));
        wcListViewer = new ListViewer(charComposite, SWT.BORDER);
        wcListViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
        ((GridData) wcListViewer.getControl().getLayoutData()).minimumHeight = 100;
        wcListViewer.setContentProvider(new IStructuredContentProvider() {

            public void dispose() {
            }

            public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            }

            public Object[] getElements(Object inputElement) {
                return ((WSView) inputElement).getWhereConditions().toArray();
            }
        });
        wcListViewer.setLabelProvider(new ILabelProvider() {

            public Image getImage(Object element) {
                return null;
            }

            public String getText(Object element) {
                WSWhereCondition wc = (WSWhereCondition) element;
                // $NON-NLS-1$
                String text = wc.getLeftPath() + " ";
                if (wc.getOperator().equals(WSWhereOperator.CONTAINS)) {
                    // $NON-NLS-1$
                    text += "Contains";
                } else if (wc.getOperator().equals(WSWhereOperator.CONTAINS_SENTENCE)) {
                    // $NON-NLS-1$
                    text += "contains the sentence";
                } else if (wc.getOperator().equals(WSWhereOperator.EQUALS)) {
                    // $NON-NLS-1$
                    text += "=";
                } else if (wc.getOperator().equals(WSWhereOperator.GREATER_THAN)) {
                    // $NON-NLS-1$
                    text += ">";
                } else if (wc.getOperator().equals(WSWhereOperator.GREATER_THAN_OR_EQUAL)) {
                    // $NON-NLS-1$
                    text += ">=";
                } else if (wc.getOperator().equals(WSWhereOperator.JOIN)) {
                    // $NON-NLS-1$
                    text += "Joins With";
                } else if (wc.getOperator().equals(WSWhereOperator.LOWER_THAN)) {
                    // $NON-NLS-1$
                    text += "<";
                } else if (wc.getOperator().equals(WSWhereOperator.LOWER_THAN_OR_EQUAL)) {
                    // $NON-NLS-1$
                    text += "<=";
                } else if (wc.getOperator().equals(WSWhereOperator.NOT_EQUALS)) {
                    // $NON-NLS-1$
                    text += "!=";
                } else if (wc.getOperator().equals(WSWhereOperator.STARTSWITH)) {
                    // $NON-NLS-1$
                    text += "Starts With";
                } else if (wc.getOperator().equals(WSWhereOperator.EMPTY_NULL)) {
                    // $NON-NLS-1$
                    text += "Is Empty Or Null";
                } else if (wc.getOperator().equals(WSWhereOperator.FULLTEXTSEARCH)) {
                    // $NON-NLS-1$
                    text += "whole content contains";
                }
                // $NON-NLS-1$
                text += " ";
                if (!wc.getOperator().equals(WSWhereOperator.JOIN)) {
                    // $NON-NLS-1$
                    text += "\"";
                }
                text += wc.getRightValueOrPath();
                if (!wc.getOperator().equals(WSWhereOperator.JOIN)) {
                    // $NON-NLS-1$
                    text += "\"";
                }
                // $NON-NLS-1$
                text += " ";
                if (wc.getStringPredicate().equals(WSStringPredicate.AND)) {
                    // $NON-NLS-1$
                    text += "[and]";
                } else if (wc.getStringPredicate().equals(WSStringPredicate.NONE)) {
                    // $NON-NLS-1$
                    text += "";
                } else if (wc.getStringPredicate().equals(WSStringPredicate.OR)) {
                    // $NON-NLS-1$
                    text += "[or]";
                } else if (wc.getStringPredicate().equals(WSStringPredicate.NOT)) {
                    // $NON-NLS-1$
                    text += "[not]";
                }
                return text;
            }

            public void addListener(ILabelProviderListener listener) {
            }

            public void dispose() {
            }

            public boolean isLabelProperty(Object element, String property) {
                return false;
            }

            public void removeListener(ILabelProviderListener listener) {
            }
        });
        int columns = 6;
        Composite resultsGroup = this.getNewSectionComposite(Messages.ViewBrowserMainPage_SearchAndResults);
        resultsGroup.setLayout(new GridLayout(columns, false));
        Composite createComposite = toolkit.createComposite(resultsGroup);
        GridLayout layout = new GridLayout(3, false);
        layout.marginWidth = 0;
        createComposite.setLayout(layout);
        createComposite.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
        Label containerLabel = toolkit.createLabel(createComposite, Messages.ViewBrowserMainPage_Container, SWT.NULL);
        containerLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1));
        dataClusterCombo = new Combo(createComposite, SWT.READ_ONLY | SWT.DROP_DOWN | SWT.SINGLE);
        dataClusterCombo.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1));
        ((GridData) dataClusterCombo.getLayoutData()).minimumWidth = 100;
        clusterTypeCombo = new Combo(createComposite, SWT.READ_ONLY | SWT.SINGLE);
        GridData typeLayout = new GridData(SWT.CENTER, SWT.CENTER, true, false, 1, 1);
        typeLayout.horizontalIndent = 10;
        clusterTypeCombo.setLayoutData(typeLayout);
        Label searchOnLabel = toolkit.createLabel(resultsGroup, Messages.ViewBrowserMainPage_SearchOn, SWT.NULL);
        GridData layoutData = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
        layoutData.horizontalIndent = 20;
        searchOnLabel.setLayoutData(layoutData);
        searchItemCombo = new Combo(resultsGroup, SWT.READ_ONLY | SWT.DROP_DOWN | SWT.SINGLE);
        searchItemCombo.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1));
        ((GridData) searchItemCombo.getLayoutData()).minimumWidth = 100;
        searchItemCombo.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                if (FULL_TEXT.equals(searchItemCombo.getText())) {
                    matchAllWordsBtn.setEnabled(true);
                } else {
                    matchAllWordsBtn.setSelection(false);
                    matchAllWordsBtn.setEnabled(false);
                }
            }
        });
        // $NON-NLS-1$
        searchText = toolkit.createText(resultsGroup, "", SWT.BORDER);
        searchText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
        searchText.addKeyListener(new KeyListener() {

            public void keyPressed(KeyEvent e) {
            }

            public void keyReleased(KeyEvent e) {
                if ((e.stateMask == 0) && (e.character == SWT.CR)) {
                    ViewBrowserMainPage.this.resultsViewer.setInput(getResults());
                }
            }
        });
        Button bSearch = toolkit.createButton(resultsGroup, Messages.ViewBrowserMainPage_Search, SWT.CENTER);
        bSearch.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, true, 1, 1));
        bSearch.addListener(SWT.Selection, new Listener() {

            public void handleEvent(Event event) {
                ViewBrowserMainPage.this.resultsViewer.setInput(getResults());
            }
        });
        matchAllWordsBtn = toolkit.createButton(resultsGroup, Messages.ViewBrowserMainPage_MatchWholeSentence, SWT.CHECK);
        matchAllWordsBtn.setSelection(true);
        // $NON-NLS-1$
        resultsLabel = toolkit.createLabel(resultsGroup, "", SWT.NULL);
        GridData resultLayoutData = new GridData(SWT.LEFT, SWT.CENTER, false, false, columns - 1, 1);
        resultLayoutData.widthHint = 100;
        resultsLabel.setLayoutData(resultLayoutData);
        resultsViewer = new TableViewer(resultsGroup);
        resultsViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, columns, 1));
        ((GridData) resultsViewer.getControl().getLayoutData()).heightHint = 500;
        resultsViewer.setContentProvider(new ArrayContentProvider());
        resultsViewer.setLabelProvider(new XMLTableLabelProvider());
        resultsViewer.addDoubleClickListener(new IDoubleClickListener() {

            public void doubleClick(DoubleClickEvent event) {
                resultsViewer.setSelection(event.getSelection());
                try {
                    new DOMViewAction(ViewBrowserMainPage.this.getSite().getShell(), resultsViewer).run();
                } catch (Exception e) {
                    MessageDialog.openError(ViewBrowserMainPage.this.getSite().getShell(), Messages._Error, Messages.bind(Messages.ViewBrowserMainPage_ErrorMsg, e.getClass().getName(), e.getLocalizedMessage()));
                }
            }
        });
        hookContextMenu();
        addListener();
    } catch (Exception e) {
        log.error(e.getMessage(), e);
    }
}
Also used : IDoubleClickListener(org.eclipse.jface.viewers.IDoubleClickListener) ILabelProviderListener(org.eclipse.jface.viewers.ILabelProviderListener) IXObjectModelListener(com.amalto.workbench.models.IXObjectModelListener) IMenuListener(org.eclipse.jface.action.IMenuListener) Listener(org.eclipse.swt.widgets.Listener) KeyListener(org.eclipse.swt.events.KeyListener) Label(org.eclipse.swt.widgets.Label) TableViewer(org.eclipse.jface.viewers.TableViewer) ListViewer(org.eclipse.jface.viewers.ListViewer) Viewer(org.eclipse.jface.viewers.Viewer) Combo(org.eclipse.swt.widgets.Combo) Image(org.eclipse.swt.graphics.Image) WSView(com.amalto.workbench.webservices.WSView) KeyEvent(org.eclipse.swt.events.KeyEvent) GridLayout(org.eclipse.swt.layout.GridLayout) Button(org.eclipse.swt.widgets.Button) IDoubleClickListener(org.eclipse.jface.viewers.IDoubleClickListener) SelectionEvent(org.eclipse.swt.events.SelectionEvent) List(org.eclipse.swt.widgets.List) ArrayList(java.util.ArrayList) ListViewer(org.eclipse.jface.viewers.ListViewer) WSWhereCondition(com.amalto.workbench.webservices.WSWhereCondition) Composite(org.eclipse.swt.widgets.Composite) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) DoubleClickEvent(org.eclipse.jface.viewers.DoubleClickEvent) ILabelProvider(org.eclipse.jface.viewers.ILabelProvider) XtentisException(com.amalto.workbench.utils.XtentisException) MalformedURLException(java.net.MalformedURLException) ILabelProviderListener(org.eclipse.jface.viewers.ILabelProviderListener) GridData(org.eclipse.swt.layout.GridData) IStructuredContentProvider(org.eclipse.jface.viewers.IStructuredContentProvider) ArrayContentProvider(org.eclipse.jface.viewers.ArrayContentProvider) KeyEvent(org.eclipse.swt.events.KeyEvent) Event(org.eclipse.swt.widgets.Event) DoubleClickEvent(org.eclipse.jface.viewers.DoubleClickEvent) SelectionEvent(org.eclipse.swt.events.SelectionEvent) TreeObject(com.amalto.workbench.models.TreeObject) KeyListener(org.eclipse.swt.events.KeyListener) TableViewer(org.eclipse.jface.viewers.TableViewer)

Example 9 with WSView

use of com.amalto.workbench.webservices.WSView in project tmdm-studio-se by Talend.

the class ViewBrowserMainPage method getResults.

public String[] getResults() {
    Cursor waitCursor = null;
    try {
        Display display = getEditor().getSite().getPage().getWorkbenchWindow().getWorkbench().getDisplay();
        waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
        this.getSite().getShell().setCursor(waitCursor);
        TMDMService service = getMDMService();
        java.util.List<String> results = null;
        int maxItem = 10;
        // $NON-NLS-1$ //$NON-NLS-2$
        String search = "".equals(searchText.getText()) ? "*" : searchText.getText();
        WSDataClusterPK wsDataClusterPK = new WSDataClusterPK(dataClusterCombo.getText() + getPkAddition());
        if (FULL_TEXT.equals(searchItemCombo.getText())) {
            boolean matchAllWords = matchAllWordsBtn.getSelection();
            results = service.quickSearch(new WSQuickSearch(null, matchAllWords, maxItem, null, search, 0, Integer.MAX_VALUE, wsDataClusterPK, getViewPK())).getStrings();
        } else {
            WSView wsview = (WSView) wcListViewer.getInput();
            java.util.List<WSWhereCondition> array = wsview.getWhereConditions();
            java.util.List<WSWhereItem> conditions = new ArrayList<WSWhereItem>();
            for (WSWhereCondition condition : array) {
                WSWhereItem item = new WSWhereItem(null, condition, null);
                conditions.add(item);
            }
            WSWhereCondition condition = new WSWhereCondition(searchItemCombo.getText(), WSWhereOperator.CONTAINS, search, true, WSStringPredicate.AND);
            WSWhereItem item = new WSWhereItem(null, condition, null);
            conditions.add(item);
            WSWhereAnd and = new WSWhereAnd(conditions);
            WSWhereItem wi = new WSWhereItem(and, null, null);
            results = service.viewSearch(new WSViewSearch("ascending", maxItem, null, 0, -1, wi, wsDataClusterPK, getViewPK())).getStrings();
        }
        resultsLabel.setText(Messages.bind(Messages.ViewBrowserMainPage_Results, results.size() - 1));
        if (results.size() > 1) {
            return results.subList(1, results.size()).toArray(new String[0]);
        }
        return new String[0];
    } catch (Exception e) {
        log.error(e.getMessage(), e);
        if ((e.getLocalizedMessage() != null) && e.getLocalizedMessage().contains("10000")) {
            MessageDialog.openError(this.getSite().getShell(), Messages.ViewBrowserMainPage_ErrorTitle4, Messages.ViewBrowserMainPage_ErrorMsg4);
        } else if (!Util.handleConnectionException(this.getSite().getShell(), e, Messages.ViewBrowserMainPage_ErrorTitle5)) {
            MessageDialog.openError(this.getSite().getShell(), Messages.ViewBrowserMainPage_ErrorTitle5, e.getLocalizedMessage());
        }
        return null;
    } finally {
        try {
            this.getSite().getShell().setCursor(null);
            waitCursor.dispose();
        } catch (Exception e) {
        }
    }
}
Also used : WSWhereCondition(com.amalto.workbench.webservices.WSWhereCondition) ArrayList(java.util.ArrayList) WSWhereItem(com.amalto.workbench.webservices.WSWhereItem) Cursor(org.eclipse.swt.graphics.Cursor) WSView(com.amalto.workbench.webservices.WSView) WSWhereAnd(com.amalto.workbench.webservices.WSWhereAnd) XtentisException(com.amalto.workbench.utils.XtentisException) MalformedURLException(java.net.MalformedURLException) WSDataClusterPK(com.amalto.workbench.webservices.WSDataClusterPK) WSQuickSearch(com.amalto.workbench.webservices.WSQuickSearch) TMDMService(com.amalto.workbench.webservices.TMDMService) WSViewSearch(com.amalto.workbench.webservices.WSViewSearch) Display(org.eclipse.swt.widgets.Display)

Example 10 with WSView

use of com.amalto.workbench.webservices.WSView in project tmdm-studio-se by Talend.

the class ExportItemsWizard method doexport.

public void doexport(Object[] selectedObjs, IProgressMonitor monitor) {
    TreeObject[] objs = null;
    if (selectedObjs.length > 0 && selectedObjs[0] instanceof TreeObject) {
        objs = Arrays.asList(selectedObjs).toArray(new TreeObject[0]);
    }
    if (objs == null || objs.length == 0) {
        return;
    }
    monitor.beginTask(Messages.ExportItemsWizard_Export, IProgressMonitor.UNKNOWN);
    Exports eps = new Exports();
    List<TreeObject> exports = new ArrayList<TreeObject>();
    TMDMService service;
    try {
        service = Util.getMDMService(objs[0]);
        try {
            LocalTreeObjectRepository.getInstance().parseElementForOutput(objs);
        } catch (Exception e) {
        }
        for (TreeObject obj : objs) {
            StringWriter sw;
            ArrayList<String> items;
            String encodedID = null;
            switch(obj.getType()) {
                case TreeObject.DATA_CLUSTER:
                    monitor.subTask(Messages.ExportItemsWizard_2);
                    items = new ArrayList<String>();
                    // dataclusters
                    WSDataClusterPK pk = (WSDataClusterPK) obj.getWsKey();
                    try {
                        WSDataCluster cluster = service.getDataCluster(new WSGetDataCluster(pk));
                        // Marshal
                        sw = new StringWriter();
                        Marshaller.marshal(cluster, sw);
                        // $NON-NLS-1$
                        encodedID = URLEncoder.encode(cluster.getName(), "UTF-8");
                        // $NON-NLS-1$
                        writeString(sw.toString(), TreeObject.DATACONTAINER + "/" + encodedID);
                        // $NON-NLS-1$
                        items.add(TreeObject.DATACONTAINER + "/" + encodedID);
                        obj.setItems(items.toArray(new String[items.size()]));
                        exports.add(obj);
                    } catch (Exception e) {
                    }
                    monitor.worked(1);
                    // datacluster contents
                    monitor.subTask(Messages.bind(Messages.ExportItemsWizard_3, pk.getPk()));
                    exportCluster(exports, pk, service);
                    monitor.worked(1);
                    break;
                case TreeObject.DATA_MODEL:
                    monitor.subTask(Messages.ExportItemsWizard_5);
                    items = new ArrayList<String>();
                    // datamodels
                    try {
                        WSDataModel model = service.getDataModel(new WSGetDataModel((WSDataModelPK) obj.getWsKey()));
                        sw = new StringWriter();
                        Marshaller.marshal(model, sw);
                        // $NON-NLS-1$
                        encodedID = URLEncoder.encode(model.getName(), "UTF-8");
                        // $NON-NLS-1$
                        writeString(sw.toString(), TreeObject.DATAMODEL_ + "/" + encodedID);
                        // $NON-NLS-1$
                        items.add(TreeObject.DATAMODEL_ + "/" + encodedID);
                        obj.setItems(items.toArray(new String[items.size()]));
                        exports.add(obj);
                    } catch (Exception e) {
                    }
                    monitor.worked(1);
                    break;
                case TreeObject.MENU:
                    monitor.subTask(Messages.ExportItemsWizard_6);
                    // ExportItem exportItem=new ExportItem();
                    items = new ArrayList<String>();
                    // menu
                    try {
                        WSMenu menu = service.getMenu(new WSGetMenu((WSMenuPK) obj.getWsKey()));
                        // Marshal
                        sw = new StringWriter();
                        Marshaller.marshal(menu, sw);
                        // $NON-NLS-1$
                        encodedID = URLEncoder.encode(menu.getName(), "UTF-8");
                        // $NON-NLS-1$
                        writeString(sw.toString(), TreeObject.MENU_ + "/" + encodedID);
                        // $NON-NLS-1$
                        items.add(TreeObject.MENU_ + "/" + encodedID);
                        obj.setItems(items.toArray(new String[items.size()]));
                        exports.add(obj);
                    } catch (Exception e) {
                    }
                    monitor.worked(1);
                    break;
                case TreeObject.PICTURES_RESOURCE:
                    monitor.subTask(Messages.ExportItemsWizard_7);
                    // ExportItem exportItem=new ExportItem();
                    items = new ArrayList<String>();
                    // picture
                    try {
                        String endpointIpAddress = obj.getEndpointIpAddress();
                        // $NON-NLS-1$
                        int index = endpointIpAddress.indexOf("/services/soap");
                        if (index != -1) {
                            endpointIpAddress = endpointIpAddress.substring(0, index);
                        }
                        String picUrl = endpointIpAddress + ResourcesUtil.getResourcesMapFromURI(endpointIpAddress + TreeObject.PICTURES_URI, objs[0]).get(obj.getDisplayName());
                        // Marshal
                        sw = new StringWriter();
                        byte[] content = HttpClientUtil.getByteArrayContentByHttpget(picUrl);
                        Marshaller.marshal(content, sw);
                        // $NON-NLS-1$
                        encodedID = URLEncoder.encode(obj.getDisplayName(), "UTF-8");
                        // $NON-NLS-1$
                        writeInputStream(new ByteArrayInputStream(content), TreeObject.PICTURES_ + "/" + encodedID);
                        // $NON-NLS-1$
                        items.add(TreeObject.PICTURES_ + "/" + encodedID);
                        obj.setItems(items.toArray(new String[items.size()]));
                        exports.add(obj);
                    } catch (Exception e) {
                        log.error(e.getMessage(), e);
                    }
                    monitor.worked(1);
                    break;
                case TreeObject.ROUTING_RULE:
                    monitor.subTask(Messages.ExportItemsWizard_10);
                    // ExportItem exportItem=new ExportItem();
                    items = new ArrayList<String>();
                    // routing rule
                    try {
                        WSRoutingRule RoutingRule = service.getRoutingRule(new WSGetRoutingRule((WSRoutingRulePK) obj.getWsKey()));
                        // Marshal
                        sw = new StringWriter();
                        Marshaller.marshal(RoutingRule, sw);
                        // $NON-NLS-1$
                        encodedID = URLEncoder.encode(RoutingRule.getName(), "UTF-8");
                        // $NON-NLS-1$
                        writeString(sw.toString(), TreeObject.ROUTINGRULE_ + "/" + encodedID);
                        // $NON-NLS-1$
                        items.add(TreeObject.ROUTINGRULE_ + "/" + encodedID);
                        obj.setItems(items.toArray(new String[items.size()]));
                        exports.add(obj);
                    } catch (Exception e) {
                    }
                    monitor.worked(1);
                    break;
                case TreeObject.STORED_PROCEDURE:
                    monitor.subTask(Messages.ExportItemsWizard_11);
                    items = new ArrayList<String>();
                    // stored procedure
                    try {
                        WSStoredProcedure StoredProcedure = service.getStoredProcedure(new WSGetStoredProcedure((WSStoredProcedurePK) obj.getWsKey()));
                        // Marshal
                        sw = new StringWriter();
                        Marshaller.marshal(StoredProcedure, sw);
                        // $NON-NLS-1$
                        encodedID = URLEncoder.encode(StoredProcedure.getName(), "UTF-8");
                        // $NON-NLS-1$
                        writeString(sw.toString(), TreeObject.STOREDPROCEDURE_ + "/" + encodedID);
                        // $NON-NLS-1$
                        items.add(TreeObject.STOREDPROCEDURE_ + "/" + encodedID);
                        obj.setItems(items.toArray(new String[items.size()]));
                        exports.add(obj);
                    } catch (Exception e) {
                    }
                    monitor.worked(1);
                    break;
                case TreeObject.TRANSFORMER:
                    monitor.subTask(Messages.ExportItemsWizard_13);
                    items = new ArrayList<String>();
                    // TODO:check the pk
                    try {
                        WSTransformerV2 transformer = service.getTransformerV2(new WSGetTransformerV2(new WSTransformerV2PK(((WSTransformerV2PK) obj.getWsKey()).getPk())));
                        // Marshal
                        sw = new StringWriter();
                        Marshaller.marshal(transformer, sw);
                        // $NON-NLS-1$
                        encodedID = URLEncoder.encode(transformer.getName(), "UTF-8");
                        // $NON-NLS-1$
                        writeString(sw.toString(), TreeObject.TRANSFORMER_ + "/" + encodedID);
                        // $NON-NLS-1$
                        items.add(TreeObject.TRANSFORMER_ + "/" + encodedID);
                        obj.setItems(items.toArray(new String[items.size()]));
                        exports.add(obj);
                    } catch (Exception e) {
                    }
                    monitor.worked(1);
                    break;
                case TreeObject.VIEW:
                    monitor.subTask(Messages.ExportItemsWizard_15);
                    items = new ArrayList<String>();
                    // view
                    try {
                        WSView View = service.getView(new WSGetView((WSViewPK) obj.getWsKey()));
                        // Marshal
                        sw = new StringWriter();
                        Marshaller.marshal(View, sw);
                        // $NON-NLS-1$
                        encodedID = URLEncoder.encode(View.getName(), "UTF-8");
                        // $NON-NLS-1$
                        writeString(sw.toString(), TreeObject.VIEW_ + "/" + encodedID);
                        // $NON-NLS-1$
                        items.add(TreeObject.VIEW_ + "/" + encodedID);
                        obj.setItems(items.toArray(new String[items.size()]));
                        exports.add(obj);
                    } catch (Exception e) {
                    }
                    monitor.worked(1);
                    break;
                default:
                    IExportItemsWizardAdapter exAdapter = ExAdapterManager.getAdapter(this, IExportItemsWizardAdapter.class);
                    if (exAdapter != null) {
                        exAdapter.doexport(service, obj.getType(), exports, obj, monitor);
                    }
                    break;
            }
        }
        // store the content xml
        eps.setItems(exports.toArray(new TreeObject[exports.size()]));
        eps.setSchemas(LocalTreeObjectRepository.getInstance().outPutSchemas());
        // export autoincrement
        try {
            WSAutoIncrement auto = service.getAutoIncrement(null);
            if (auto != null && auto.getAutoincrement() != null) {
                eps.setAutoIncrement(auto.getAutoincrement());
            }
        } catch (Exception e) {
        }
        StringWriter sw = new StringWriter();
        try {
            Marshaller.marshal(eps, sw);
            // $NON-NLS-1$
            writeString(sw.toString(), "exportitems.xml");
        } catch (Exception e) {
        }
        monitor.done();
    } catch (Exception e) {
    }
}
Also used : WSGetStoredProcedure(com.amalto.workbench.webservices.WSGetStoredProcedure) WSAutoIncrement(com.amalto.workbench.webservices.WSAutoIncrement) WSMenuPK(com.amalto.workbench.webservices.WSMenuPK) WSGetTransformerV2(com.amalto.workbench.webservices.WSGetTransformerV2) WSStoredProcedurePK(com.amalto.workbench.webservices.WSStoredProcedurePK) ArrayList(java.util.ArrayList) WSView(com.amalto.workbench.webservices.WSView) WSDataCluster(com.amalto.workbench.webservices.WSDataCluster) WSGetDataModel(com.amalto.workbench.webservices.WSGetDataModel) WSDataClusterPK(com.amalto.workbench.webservices.WSDataClusterPK) StringWriter(java.io.StringWriter) TMDMService(com.amalto.workbench.webservices.TMDMService) WSRoutingRule(com.amalto.workbench.webservices.WSRoutingRule) WSStoredProcedure(com.amalto.workbench.webservices.WSStoredProcedure) WSGetView(com.amalto.workbench.webservices.WSGetView) WSGetMenu(com.amalto.workbench.webservices.WSGetMenu) WSRoutingRulePK(com.amalto.workbench.webservices.WSRoutingRulePK) WSGetRoutingRule(com.amalto.workbench.webservices.WSGetRoutingRule) WSMenu(com.amalto.workbench.webservices.WSMenu) WSGetDataCluster(com.amalto.workbench.webservices.WSGetDataCluster) WSDataModel(com.amalto.workbench.webservices.WSDataModel) WSTransformerV2(com.amalto.workbench.webservices.WSTransformerV2) ByteArrayInputStream(java.io.ByteArrayInputStream) WSTransformerV2PK(com.amalto.workbench.webservices.WSTransformerV2PK) TreeObject(com.amalto.workbench.models.TreeObject) WSDataModelPK(com.amalto.workbench.webservices.WSDataModelPK) WSViewPK(com.amalto.workbench.webservices.WSViewPK)

Aggregations

WSView (com.amalto.workbench.webservices.WSView)11 XtentisException (com.amalto.workbench.utils.XtentisException)6 TMDMService (com.amalto.workbench.webservices.TMDMService)6 WSGetView (com.amalto.workbench.webservices.WSGetView)6 ArrayList (java.util.ArrayList)6 TreeObject (com.amalto.workbench.models.TreeObject)5 WSDataClusterPK (com.amalto.workbench.webservices.WSDataClusterPK)5 WSTransformerV2 (com.amalto.workbench.webservices.WSTransformerV2)4 WSViewPK (com.amalto.workbench.webservices.WSViewPK)4 WSWhereCondition (com.amalto.workbench.webservices.WSWhereCondition)4 WSBoolean (com.amalto.workbench.webservices.WSBoolean)3 WSDataCluster (com.amalto.workbench.webservices.WSDataCluster)3 WSDataModel (com.amalto.workbench.webservices.WSDataModel)3 WSDataModelPK (com.amalto.workbench.webservices.WSDataModelPK)3 WSGetDataCluster (com.amalto.workbench.webservices.WSGetDataCluster)3 WSGetDataModel (com.amalto.workbench.webservices.WSGetDataModel)3 WSGetMenu (com.amalto.workbench.webservices.WSGetMenu)3 WSGetRoutingRule (com.amalto.workbench.webservices.WSGetRoutingRule)3 WSGetStoredProcedure (com.amalto.workbench.webservices.WSGetStoredProcedure)3 WSGetTransformerV2 (com.amalto.workbench.webservices.WSGetTransformerV2)3