Search in sources :

Example 6 with CTabItem

use of org.eclipse.swt.custom.CTabItem in project tdi-studio-se by Talend.

the class SQLBuilderTabComposite method createTabItem.

/**
     * Creates tab item. Changed by Marvin Wang on Feb. 24, 2012 for bug TDI-7643, for all SQLBuilderEditorComposite
     * when using <code>editorComposite.getConnParam().getQueryObject()</code> to get the query object, the query every
     * time get is the same object. Caz all <code>SQLBuilderEditorComposite</code>s use the same connection parameter.
     * 
     * @param node
     * @param connParam
     * @param isDefaultEditor
     */
private void createTabItem(RepositoryNode node, ConnectionParameters connParam, boolean isDefaultEditor) {
    //$NON-NLS-1$
    String queryStr = "";
    if (node != null) {
        CTabItem[] tabItems = tabFolder.getItems();
        for (int i = 0; i < tabItems.length; i++) {
            SQLBuilderEditorComposite editorComposite = (SQLBuilderEditorComposite) (((CTabFolder) tabItems[i].getControl()).getItems()[0]).getControl();
            // To get the different query object for each SQLBuilderEditorComposite, use the following method. The
            // queryObject is stored in <code>SQLBuilderEditorComposite.doSaveSQL()</code>
            Query query2 = editorComposite.getQueryObject();
            if ((RepositoryNodeType) node.getProperties(EProperties.CONTENT_TYPE) == RepositoryNodeType.QUERY) {
                Query query = ((QueryRepositoryObject) node.getObject()).getQuery();
                if (query2 == null && tabItems[i].getData() instanceof Query) {
                    query2 = (Query) tabItems[i].getData();
                }
                if (query2 != null && query.getLabel().equals(query2.getLabel())) {
                    if ("".equals(editorComposite.getEditorContent())) {
                        //$NON-NLS-1$
                        editorComposite.setEditorContent(query.getValue());
                    }
                    tabFolder.setSelection(i);
                    return;
                }
                connParam.setQueryObject(query);
                queryStr = query.getValue();
            }
        }
    }
    CTabItem tabItem = null;
    if (connParam.isFromDBNode()) {
        tabItem = new CTabItem(tabFolder, SWT.NULL);
    } else {
        tabItem = new CTabItem(tabFolder, SWT.CLOSE);
    }
    node = SQLBuilderRepositoryNodeManager.getRoot(node);
    if (!"".equals(queryStr)) {
        //$NON-NLS-1$
        try {
            nodesSel = EMFRepositoryNodeManager.getInstance().parseSqlStatement(queryStr, node);
        } catch (Exception e) {
            MessageDialog.openError(new Shell(), Messages.getString("SQLBuilderTabComposite.Notice.title"), //$NON-NLS-1$
            Messages.getString(//$NON-NLS-1$
            "SQLBuilderTabComposite.Notice.Info"));
        }
    }
    MultiPageSqlBuilderEditor builderEditor = new MultiPageSqlBuilderEditor(nodesSel, tabItem, isDefaultEditor, connParam, node, dialog);
    builderEditor.setReadOnly(readOnly);
    try {
        builderEditor.init(new SQLBuilderEditorSite(), new SQLBuilderEditorInput());
    } catch (PartInitException e) {
        ExceptionHandler.process(e);
    }
    builderEditor.createPartControl2(tabFolder);
    tabItem.setControl(builderEditor.getContainer());
    tabItem.setData(TextUtil.KEY, builderEditor);
    if (connParam.isFromRepository() && connParam.getQueryObject() != null) {
        queryStr = connParam.getQueryObject().getValue();
    }
    builderEditor.setSqlText(queryStr);
    if (connParam.isShowDesignerPage()) {
        builderEditor.showDesignerPage();
    }
    // set new tab as the active one.
    tabFolder.setSelection(tabFolder.getItemCount() - 1);
    // refresh view
    tabFolder.layout();
    tabFolder.redraw();
}
Also used : CTabFolder(org.eclipse.swt.custom.CTabFolder) Query(org.talend.core.model.metadata.builder.connection.Query) SQLBuilderEditorInput(org.talend.sqlbuilder.editors.SQLBuilderEditorInput) CTabItem(org.eclipse.swt.custom.CTabItem) PartInitException(org.eclipse.ui.PartInitException) QueryRepositoryObject(org.talend.sqlbuilder.dbstructure.DBTreeProvider.QueryRepositoryObject) Shell(org.eclipse.swt.widgets.Shell) MultiPageSqlBuilderEditor(org.talend.sqlbuilder.editors.MultiPageSqlBuilderEditor) PartInitException(org.eclipse.ui.PartInitException) SQLBuilderEditorSite(org.talend.sqlbuilder.editors.SQLBuilderEditorSite)

Example 7 with CTabItem

use of org.eclipse.swt.custom.CTabItem in project tdi-studio-se by Talend.

the class SQLResultComposite method createTabItem.

/**
     * 
     * DOC dev Comment method "createTabItem".
     * 
     * @throws Exception throw all exception
     */
private void createTabItem() throws Exception {
    lastTabNumber = lastTabNumber + 1;
    final CTabItem tabItem = new CTabItem(tabFolder, SWT.NULL);
    String labelText = Messages.getString("SQLResultComposite.Result") + ": " + lastTabNumber;
    tabItem.setText(labelText);
    //$NON-NLS-1$
    tabItem.setData("tabLabel", labelText);
    tabItem.setToolTipText(TextUtil.getWrappedText(sqlExecution.getSqlStatement()));
    Composite composite = new Composite(tabFolder, SWT.NULL);
    GridLayout layout = new GridLayout();
    layout.numColumns = 1;
    layout.marginLeft = 0;
    layout.marginTop = 0;
    layout.marginBottom = 0;
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = 0;
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    composite.setLayout(layout);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
    tabItem.setControl(composite);
    tabItem.setData(sqlExecution);
    tabItem.addDisposeListener(new DisposeListener() {

        public void widgetDisposed(final DisposeEvent e) {
            BusyIndicator.showWhile(Display.getCurrent(), new Runnable() {

                public void run() {
                    CTabItem tabItem = (CTabItem) e.getSource();
                    AbstractSQLExecution sqlExe = (AbstractSQLExecution) tabItem.getData();
                    sqlExe.stop();
                    tabItem.setData(null);
                    if (tabFolder != null && !tabFolder.isDisposed()) {
                        if (tabFolder.getItemCount() == 0) {
                            // this is last tab..
                            clearParent();
                            setDefaultMessage();
                        }
                    } else if (tabFolder.isDisposed()) {
                        clearParent();
                        setDefaultMessage();
                    }
                }
            });
        }
    });
    createHeaderComposite(composite, tabItem);
    createDetailComposite(composite, tabItem);
    // refresh view
    composite.layout();
    tabFolder.layout();
    tabFolder.redraw();
}
Also used : DisposeListener(org.eclipse.swt.events.DisposeListener) GridLayout(org.eclipse.swt.layout.GridLayout) Composite(org.eclipse.swt.widgets.Composite) AbstractSQLExecution(org.talend.sqlbuilder.sqlcontrol.AbstractSQLExecution) GridData(org.eclipse.swt.layout.GridData) DisposeEvent(org.eclipse.swt.events.DisposeEvent) CTabItem(org.eclipse.swt.custom.CTabItem)

Example 8 with CTabItem

use of org.eclipse.swt.custom.CTabItem in project tdi-studio-se by Talend.

the class SetupProcessDependenciesRoutinesDialog method createTabFolderField.

private void createTabFolderField(Composite parent) {
    // tab
    folder = new CTabFolder(parent, SWT.NONE);
    folder.setLayoutData(new GridData(GridData.FILL_BOTH));
    folder.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            updateButtons();
        }
    });
    userTabItem = new CTabItem(folder, SWT.NONE);
    //$NON-NLS-1$
    userTabItem.setText(Messages.getString("SetupProcessDependenciesRoutinesDialog.userRoutineLabel"));
    systemTabItem = new CTabItem(folder, SWT.NONE);
    //$NON-NLS-1$
    systemTabItem.setText(Messages.getString("SetupProcessDependenciesRoutinesDialog.systemRoutineLabel"));
    folder.setSelection(userTabItem);
    folder.setSimple(false);
    ISelectionChangedListener listListener = new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtons();
        }
    };
    // user
    Composite userComposite = new Composite(folder, SWT.NONE);
    userComposite.setLayout(new GridLayout());
    userComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
    userViewer = new ListViewer(userComposite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    userViewer.setLabelProvider(new RoutineRecordLabelProvider());
    userViewer.setContentProvider(ArrayContentProvider.getInstance());
    userViewer.setInput(userRoutines);
    userViewer.getList().setLayoutData(new GridData(GridData.FILL_BOTH));
    userViewer.addSelectionChangedListener(listListener);
    userTabItem.setControl(userComposite);
    // system
    Composite systemComposite = new Composite(folder, SWT.NONE);
    systemComposite.setLayout(new GridLayout());
    systemComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
    systemViewer = new ListViewer(systemComposite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    systemViewer.setLabelProvider(new RoutineRecordLabelProvider());
    systemViewer.setContentProvider(ArrayContentProvider.getInstance());
    systemViewer.setInput(systemRoutines);
    systemViewer.getList().setLayoutData(new GridData(GridData.FILL_BOTH));
    systemViewer.addSelectionChangedListener(listListener);
    systemTabItem.setControl(systemComposite);
}
Also used : ListViewer(org.eclipse.jface.viewers.ListViewer) GridLayout(org.eclipse.swt.layout.GridLayout) CTabFolder(org.eclipse.swt.custom.CTabFolder) Composite(org.eclipse.swt.widgets.Composite) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) GridData(org.eclipse.swt.layout.GridData) SelectionEvent(org.eclipse.swt.events.SelectionEvent) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) CTabItem(org.eclipse.swt.custom.CTabItem)

Example 9 with CTabItem

use of org.eclipse.swt.custom.CTabItem in project tdi-studio-se by Talend.

the class TabFolderEditors method createSqlViewerTab.

/**
     * DOC amaumont Comment method "createSqlViewerTab".
     */
private void createSqlViewerTab() {
    CTabItem item;
    item = new CTabItem(tabFolderEditors, SWT.BORDER);
    //$NON-NLS-1$ //$NON-NLS-2$
    item.setText(Messages.getString("TabFolderEditors.SqlSelectQuery", new Object[] { "" }));
    styledSqlText = createStyledText(item);
    styledSqlText.setWordWrap(true);
    styledSqlText.setEditable(false);
    styledSqlText.setEnabled(true);
}
Also used : CTabItem(org.eclipse.swt.custom.CTabItem)

Example 10 with CTabItem

use of org.eclipse.swt.custom.CTabItem in project tdi-studio-se by Talend.

the class TabFolderEditors method createMetadataEditorTab.

/**
     * DOC amaumont Comment method "createMetadataEditor".
     */
private void createMetadataEditorTab() {
    CTabItem item = new CTabItem(tabFolderEditors, SWT.BORDER);
    //$NON-NLS-1$
    item.setText(Messages.getString("TabFolderEditors.schemaEditor"));
    SashForm inOutMetaEditorContainer = new SashForm(tabFolderEditors, SWT.SMOOTH | SWT.HORIZONTAL | SWT.SHADOW_OUT);
    inOutMetaEditorContainer.setLayout(new RowLayout(SWT.HORIZONTAL));
    item.setControl(inOutMetaEditorContainer);
    CommandStack commandStack = mapperManager.getCommandStack();
    inputMetaEditor = new MetadataTableEditorView(inOutMetaEditorContainer, SWT.BORDER);
    inputMetaEditor.setCurrentDbms(dbmsId);
    inputMetaEditor.setShowDbTypeColumn(true, false, true);
    inputMetaEditor.setShowDbColumnName(true, false);
    inputMetaEditor.setShowPatternColumn(false);
    inputMetaEditor.setShowTalendTypeColumn(false);
    inputMetaEditor.initGraphicComponents();
    inputMetaEditor.getExtendedTableViewer().setCommandStack(commandStack);
    outputMetaEditor = new MetadataTableEditorView(inOutMetaEditorContainer, SWT.BORDER);
    outputMetaEditor.setCurrentDbms(dbmsId);
    outputMetaEditor.setShowDbTypeColumn(true, false, true);
    outputMetaEditor.setShowDbColumnName(true, false);
    outputMetaEditor.setShowTalendTypeColumn(false);
    outputMetaEditor.setShowPatternColumn(false);
    outputMetaEditor.initGraphicComponents();
    outputMetaEditor.getExtendedTableViewer().setCommandStack(commandStack);
}
Also used : SashForm(org.eclipse.swt.custom.SashForm) CommandStack(org.eclipse.gef.commands.CommandStack) RowLayout(org.eclipse.swt.layout.RowLayout) CTabItem(org.eclipse.swt.custom.CTabItem) MetadataTableEditorView(org.talend.core.ui.metadata.editor.MetadataTableEditorView)

Aggregations

CTabItem (org.eclipse.swt.custom.CTabItem)377 Composite (org.eclipse.swt.widgets.Composite)246 FormLayout (org.eclipse.swt.layout.FormLayout)189 FormAttachment (org.eclipse.swt.layout.FormAttachment)185 FormData (org.eclipse.swt.layout.FormData)185 SelectionEvent (org.eclipse.swt.events.SelectionEvent)173 Label (org.eclipse.swt.widgets.Label)168 CTabFolder (org.eclipse.swt.custom.CTabFolder)165 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)149 Button (org.eclipse.swt.widgets.Button)142 Text (org.eclipse.swt.widgets.Text)117 Event (org.eclipse.swt.widgets.Event)107 Listener (org.eclipse.swt.widgets.Listener)107 TextVar (org.pentaho.di.ui.core.widget.TextVar)107 ModifyListener (org.eclipse.swt.events.ModifyListener)106 ModifyEvent (org.eclipse.swt.events.ModifyEvent)104 Shell (org.eclipse.swt.widgets.Shell)101 ColumnInfo (org.pentaho.di.ui.core.widget.ColumnInfo)100 TableView (org.pentaho.di.ui.core.widget.TableView)99 ShellEvent (org.eclipse.swt.events.ShellEvent)95