/** * Creates a new instance. * * @param parent * @param controller */ public ViewDataDefinition(final Composite parent, final Controller controller) { // Register this.controller = controller; this.controller.addListener(ModelPart.SELECTED_ATTRIBUTE, this); this.controller.addListener(ModelPart.INPUT, this); this.controller.addListener(ModelPart.MODEL, this); // Create the tab folder folder = new CTabFolder(parent, SWT.TOP | SWT.BORDER | SWT.FLAT); folder.setUnselectedCloseVisible(false); folder.setSimple(false); folder.setTabHeight(25); folder.setLayoutData(SWTUtil.createFillGridData()); // Create help button SWTUtil.createHelpButton(controller, folder, "id-1"); // $NON-NLS-1$ // Prevent closing folder.addCTabFolder2Listener( new CTabFolder2Adapter() { @Override public void close(final CTabFolderEvent event) { event.doit = false; } }); folder.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { selectionEvent(); } }); }
@Override protected void draw(int part, int state, Rectangle bounds, GC gc) { updateEmptyClassIfNeeded(); if (part == PART_BODY && !isPreviewingTab()) { /* * 7: Editor area - Minimize / maximize look brocken * https://github.com/jeeeyul/eclipse-themes/issues/issue/7 * * Calculated tab height of empty tab seens to cause this problems. */ if (tabFolder.getItemCount() == 0) { if (lastKnownTabHeight < 0) { lastKnownTabHeight = tabFolder.getFont().getFontData()[0].getHeight() + 19; } tabFolder.setTabHeight(lastKnownTabHeight); } else { tabFolder.setTabHeight(-1); lastKnownTabHeight = tabFolder.getTabHeight(); } } super.draw(part, state, bounds, gc); }
/** * Create contents of the dialog. * * @param parent */ @Override protected Control createDialogArea(Composite parent) { setTitle(""); parent.setToolTipText("hghkhj"); Composite area = (Composite) super.createDialogArea(parent); Composite container = new Composite(area, SWT.NONE); container.setLayout(new GridLayout(1, false)); container.setLayoutData(new GridData(GridData.FILL_BOTH)); CTabFolder tabFolder = new CTabFolder(container, SWT.BORDER); tabFolder.setTabHeight(22); tabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); tabFolder.setSelectionBackground( Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT)); CTabItem tbtmNewItem = new CTabItem(tabFolder, SWT.NONE); tbtmNewItem.setText("Main"); Composite composite = new Composite(tabFolder, SWT.NONE); tbtmNewItem.setControl(composite); composite.setLayout(new GridLayout(2, false)); Label lblNewLabel = new Label(composite, SWT.NONE); lblNewLabel.setText("Id:"); idText = new Text(composite, SWT.BORDER); idText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); Label lblNewLabel_1 = new Label(composite, SWT.NONE); lblNewLabel_1.setText("Source Ref:"); sourceRefViewer = new ComboViewer(composite, SWT.READ_ONLY); Combo combo = sourceRefViewer.getCombo(); combo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); sourceRefViewer.setContentProvider(new ArrayContentProvider()); sourceRefViewer.setLabelProvider(new IDataLabelProvider()); Label lblNewLabel_2 = new Label(composite, SWT.NONE); lblNewLabel_2.setText("Target Ref:"); targetRefViewer = new ComboViewer(composite, SWT.READ_ONLY); Combo combo_1 = targetRefViewer.getCombo(); combo_1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); targetRefViewer.setContentProvider(new ArrayContentProvider()); targetRefViewer.setLabelProvider(new IDataLabelProvider()); Label lblNewLabel_3 = new Label(composite, SWT.NONE); lblNewLabel_3.setText("Transformation:"); transformationText = new Text(composite, SWT.BORDER | SWT.WRAP | SWT.MULTI); transformationText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 2)); CTabItem tbtmNewItem_1 = new CTabItem(tabFolder, SWT.NONE); tbtmNewItem_1.setText("Assignments"); Composite composite_1 = new Composite(tabFolder, SWT.NONE); tbtmNewItem_1.setControl(composite_1); composite_1.setLayout(new GridLayout(1, true)); ToolBar toolBar = new ToolBar(composite_1, SWT.FLAT | SWT.RIGHT); toolBar.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1)); ToolItem addItem = new ToolItem(toolBar, SWT.NONE); addItem.addSelectionListener( new SelectionAdapter() { @SuppressWarnings("unchecked") @Override public void widgetSelected(SelectionEvent e) { Shell newshell = new Shell(getParentShell(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); AssignmentDialog dialog = new AssignmentDialog(newshell); String determinedId = IdUtil.getNextParentedIdInList( (List<BaseElement>) assignmentsViewer.getInput(), "A", idText.getText()); dialog.setDeterminedId(determinedId); if (dialog.open() == Window.OK) { ((List<Assignment>) assignmentsViewer.getInput()).add(dialog.getResult()); try { idHandler.addId(dialog.getResult()); } catch (IdAlreadyExistException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } assignmentsViewer.refresh(true); } } }); addItem.setText("New"); final ToolItem editItem = new ToolItem(toolBar, SWT.NONE); editItem.addSelectionListener( new SelectionAdapter() { @SuppressWarnings("unchecked") @Override public void widgetSelected(SelectionEvent e) { AssignmentDialog dialog = new AssignmentDialog(getShell()); String determinedId = IdUtil.getNextParentedIdInList( (List<BaseElement>) assignmentsViewer.getInput(), "A", idText.getText()); dialog.setDeterminedId(determinedId); IStructuredSelection selection = (IStructuredSelection) assignmentsViewer.getSelection(); if (dialog.open((Assignment) selection.getFirstElement()) == Window.OK) { int index = assignmentsViewer.getTable().getSelectionIndex(); try { idHandler.removeId((BaseElement) selection.getFirstElement()); } catch (IdNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } ((List<Assignment>) assignmentsViewer.getInput()).remove(selection.getFirstElement()); ((List<Assignment>) assignmentsViewer.getInput()).add(index, dialog.getResult()); try { idHandler.addId(dialog.getResult()); } catch (IdAlreadyExistException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } assignmentsViewer.refresh(true); // ModelIdProcessor.refreshModelIds(EcoreUtil.getURI(getDiagram())); } } }); editItem.setText("Edit"); editItem.setEnabled(false); final ToolItem deleteItem = new ToolItem(toolBar, SWT.NONE); deleteItem.addSelectionListener( new SelectionAdapter() { @SuppressWarnings("unchecked") @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) assignmentsViewer.getSelection(); try { idHandler.removeId((BaseElement) selection.getFirstElement()); } catch (IdNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } ((List<Assignment>) assignmentsViewer.getInput()).remove(selection.getFirstElement()); assignmentsViewer.refresh(true); // ModelIdProcessor.refreshModelIds(EcoreUtil.getURI(getDiagram())); } }); deleteItem.setText("Delete"); deleteItem.setEnabled(false); final ToolItem upItem = new ToolItem(toolBar, SWT.NONE); upItem.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) assignmentsViewer.getSelection(); Assignment selected = (Assignment) selection.getFirstElement(); List<Assignment> list = (List<Assignment>) assignmentsViewer.getInput(); int index = list.indexOf(selected); list.remove(selected); list.add(index - 1, selected); assignmentsViewer.setSelection(new StructuredSelection(selected)); assignmentsViewer.refresh(true); } }); upItem.setEnabled(false); upItem.setText("Up"); final ToolItem downItem = new ToolItem(toolBar, SWT.NONE); downItem.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) assignmentsViewer.getSelection(); Assignment selected = (Assignment) selection.getFirstElement(); List<Assignment> list = (List<Assignment>) assignmentsViewer.getInput(); int index = list.indexOf(selected); list.remove(selected); list.add(index + 1, selected); assignmentsViewer.setSelection(new StructuredSelection(selected)); assignmentsViewer.refresh(true); } }); downItem.setEnabled(false); downItem.setText("Down"); Composite composite_2 = new Composite(composite_1, SWT.NONE); composite_2.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); // composite_2.setLayout(new GridLayout(1, false)); assignmentsViewer = new TableViewer(composite_2, SWT.BORDER | SWT.FULL_SELECTION); assignmentsViewer.addSelectionChangedListener( new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (event.getSelection() == null) { editItem.setEnabled(false); deleteItem.setEnabled(false); upItem.setEnabled(false); downItem.setEnabled(false); } else { editItem.setEnabled(true); deleteItem.setEnabled(true); List<Assignment> list = (List<Assignment>) assignmentsViewer.getInput(); Assignment selected = (Assignment) (((StructuredSelection) event.getSelection()).getFirstElement()); if (list.indexOf(selected) == 0) { upItem.setEnabled(false); downItem.setEnabled(true); } else if (list.indexOf(selected) == list.size() - 1) { upItem.setEnabled(true); downItem.setEnabled(false); } else { upItem.setEnabled(true); downItem.setEnabled(true); } } } }); table = assignmentsViewer.getTable(); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 0, 1)); table.setLinesVisible(true); table.setHeaderVisible(true); TableViewerColumn tableViewerColumn = new TableViewerColumn(assignmentsViewer, SWT.NONE); TableColumn tblclmnNewColumn = tableViewerColumn.getColumn(); tblclmnNewColumn.setWidth(new Double(table.getSize().x * 0.2).intValue()); tblclmnNewColumn.setResizable(true); tblclmnNewColumn.setText("Id"); TableViewerColumn tableViewerColumn_1 = new TableViewerColumn(assignmentsViewer, SWT.NONE); TableColumn tblclmnNewColumn_1 = tableViewerColumn_1.getColumn(); tblclmnNewColumn_1.setWidth(new Double(table.getSize().x * 0.4).intValue()); tblclmnNewColumn_1.setResizable(true); tblclmnNewColumn_1.setText("From"); TableViewerColumn tableViewerColumn_2 = new TableViewerColumn(assignmentsViewer, SWT.NONE); TableColumn tblclmnNewColumn_2 = tableViewerColumn_2.getColumn(); tblclmnNewColumn_2.setResizable(true); tblclmnNewColumn_2.setWidth(new Double(table.getSize().x * 0.4).intValue()); tblclmnNewColumn_2.setText("To"); TableColumnLayout tableColumnLayout = new TableColumnLayout(); tableColumnLayout.setColumnData(tblclmnNewColumn, new ColumnWeightData(20, 50, true)); tableColumnLayout.setColumnData(tblclmnNewColumn_1, new ColumnWeightData(40, 50, true)); tableColumnLayout.setColumnData(tblclmnNewColumn_2, new ColumnWeightData(40, 50, true)); composite_2.setLayout(tableColumnLayout); assignmentsViewer.setContentProvider(new ArrayContentProvider()); assignmentsViewer.setLabelProvider(new AssignmentLabelProvider()); VariableSupport.decorateTextWithVariableSupport(transformationText); transformationText.setFont(FontUtil.INSTANCE.getExpressionFont()); new Label(composite, SWT.NONE); init(); return area; }
public Composite createSashForm(final Composite composite) { if (!tv.isTabViewsEnabled()) { tableComposite = tv.createMainPanel(composite); return tableComposite; } ConfigurationManager configMan = ConfigurationManager.getInstance(); int iNumViews = 0; UIFunctionsSWT uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT(); UISWTViewEventListenerWrapper[] pluginViews = null; if (uiFunctions != null) { UISWTInstance pluginUI = uiFunctions.getUISWTInstance(); if (pluginUI != null) { pluginViews = pluginUI.getViewListeners(tv.getTableID()); iNumViews += pluginViews.length; } } if (iNumViews == 0) { tableComposite = tv.createMainPanel(composite); return tableComposite; } FormData formData; final Composite form = new Composite(composite, SWT.NONE); FormLayout flayout = new FormLayout(); flayout.marginHeight = 0; flayout.marginWidth = 0; form.setLayout(flayout); GridData gridData; gridData = new GridData(GridData.FILL_BOTH); form.setLayoutData(gridData); // Create them in reverse order, so we can have the table auto-grow, and // set the tabFolder's height manually final int TABHEIGHT = 20; tabFolder = new CTabFolder(form, SWT.TOP | SWT.BORDER); tabFolder.setMinimizeVisible(true); tabFolder.setTabHeight(TABHEIGHT); final int iFolderHeightAdj = tabFolder.computeSize(SWT.DEFAULT, 0).y; final Sash sash = new Sash(form, SWT.HORIZONTAL); tableComposite = tv.createMainPanel(form); Composite cFixLayout = tableComposite; while (cFixLayout != null && cFixLayout.getParent() != form) { cFixLayout = cFixLayout.getParent(); } if (cFixLayout == null) { cFixLayout = tableComposite; } GridLayout layout = new GridLayout(); layout.numColumns = 1; layout.horizontalSpacing = 0; layout.verticalSpacing = 0; layout.marginHeight = 0; layout.marginWidth = 0; cFixLayout.setLayout(layout); // FormData for Folder formData = new FormData(); formData.left = new FormAttachment(0, 0); formData.right = new FormAttachment(100, 0); formData.bottom = new FormAttachment(100, 0); int iSplitAt = configMan.getIntParameter(tv.getPropertiesPrefix() + ".SplitAt", 3000); // Was stored at whole if (iSplitAt < 100) { iSplitAt *= 100; } double pct = iSplitAt / 10000.0; if (pct < 0.03) { pct = 0.03; } else if (pct > 0.97) { pct = 0.97; } // height will be set on first resize call sash.setData("PCT", new Double(pct)); tabFolder.setLayoutData(formData); final FormData tabFolderData = formData; // FormData for Sash formData = new FormData(); formData.left = new FormAttachment(0, 0); formData.right = new FormAttachment(100, 0); formData.bottom = new FormAttachment(tabFolder); formData.height = 5; sash.setLayoutData(formData); // FormData for table Composite formData = new FormData(); formData.left = new FormAttachment(0, 0); formData.right = new FormAttachment(100, 0); formData.top = new FormAttachment(0, 0); formData.bottom = new FormAttachment(sash); cFixLayout.setLayoutData(formData); // Listeners to size the folder sash.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { final boolean FASTDRAG = true; if (FASTDRAG && e.detail == SWT.DRAG) { return; } if (tabFolder.getMinimized()) { tabFolder.setMinimized(false); refreshSelectedSubView(); ConfigurationManager configMan = ConfigurationManager.getInstance(); configMan.setParameter(tv.getPropertiesPrefix() + ".subViews.minimized", false); } Rectangle area = form.getClientArea(); tabFolderData.height = area.height - e.y - e.height - iFolderHeightAdj; form.layout(); Double l = new Double((double) tabFolder.getBounds().height / form.getBounds().height); sash.setData("PCT", l); if (e.detail != SWT.DRAG) { ConfigurationManager configMan = ConfigurationManager.getInstance(); configMan.setParameter( tv.getPropertiesPrefix() + ".SplitAt", (int) (l.doubleValue() * 10000)); } } }); final CTabFolder2Adapter folderListener = new CTabFolder2Adapter() { public void minimize(CTabFolderEvent event) { tabFolder.setMinimized(true); tabFolderData.height = iFolderHeightAdj; CTabItem[] items = tabFolder.getItems(); for (int i = 0; i < items.length; i++) { CTabItem tabItem = items[i]; tabItem.getControl().setVisible(false); } form.layout(); UISWTViewCore view = getActiveSubView(); if (view != null) { view.triggerEvent(UISWTViewEvent.TYPE_FOCUSLOST, null); } ConfigurationManager configMan = ConfigurationManager.getInstance(); configMan.setParameter(tv.getPropertiesPrefix() + ".subViews.minimized", true); } public void restore(CTabFolderEvent event) { tabFolder.setMinimized(false); CTabItem selection = tabFolder.getSelection(); if (selection != null) { selection.getControl().setVisible(true); } form.notifyListeners(SWT.Resize, null); UISWTViewCore view = getActiveSubView(); if (view != null) { view.triggerEvent(UISWTViewEvent.TYPE_FOCUSGAINED, null); } refreshSelectedSubView(); ConfigurationManager configMan = ConfigurationManager.getInstance(); configMan.setParameter(tv.getPropertiesPrefix() + ".subViews.minimized", false); } }; tabFolder.addCTabFolder2Listener(folderListener); tabFolder.addSelectionListener( new SelectionListener() { public void widgetSelected(SelectionEvent e) { // make sure its above try { ((CTabItem) e.item).getControl().setVisible(true); ((CTabItem) e.item).getControl().moveAbove(null); // TODO: Need to viewDeactivated old one UISWTViewCore view = getActiveSubView(); if (view != null) { view.triggerEvent(UISWTViewEvent.TYPE_FOCUSGAINED, null); } } catch (Exception t) { } } public void widgetDefaultSelected(SelectionEvent e) {} }); tabFolder.addMouseListener( new MouseAdapter() { public void mouseDown(MouseEvent e) { if (tabFolder.getMinimized()) { folderListener.restore(null); // If the user clicked down on the restore button, and we restore // before the CTabFolder does, CTabFolder will minimize us again // There's no way that I know of to determine if the mouse is // on that button! // one of these will tell tabFolder to cancel e.button = 0; tabFolder.notifyListeners(SWT.MouseExit, null); } } }); form.addListener( SWT.Resize, new Listener() { public void handleEvent(Event e) { if (tabFolder.getMinimized()) { return; } Double l = (Double) sash.getData("PCT"); if (l != null) { tabFolderData.height = (int) (form.getBounds().height * l.doubleValue()) - iFolderHeightAdj; form.layout(); } } }); // Call plugin listeners if (pluginViews != null) { for (UISWTViewEventListenerWrapper l : pluginViews) { if (l != null) { try { UISWTViewImpl view = new UISWTViewImpl(tv.getTableID(), l.getViewID(), l, null); addTabView(view); } catch (Exception e) { // skip, plugin probably specifically asked to not be added } } } } if (configMan.getBooleanParameter(tv.getPropertiesPrefix() + ".subViews.minimized", false)) { tabFolder.setMinimized(true); tabFolderData.height = iFolderHeightAdj; } else { tabFolder.setMinimized(false); } tabFolder.setSelection(0); return form; }