List of usage examples for org.eclipse.jface.viewers TableViewerColumn TableViewerColumn
public TableViewerColumn(TableViewer viewer, TableColumn column)
From source file:com.rinke.solutions.pinball.PinDmdEditor.java
/** * Create contents of the window.// w w w . j a va 2 s .c o m */ void createContents(Shell shell) { shell.setSize(1238, 657); shell.setText("Pin2dmd - Editor"); shell.setLayout(new GridLayout(4, false)); createMenu(shell); recentProjectsMenuManager = new RecentMenuManager("recentProject", 4, menuPopRecentProjects, e -> loadProject((String) e.widget.getData())); recentProjectsMenuManager.loadRecent(); recentPalettesMenuManager = new RecentMenuManager("recentPalettes", 4, mntmRecentPalettes, e -> paletteHandler.loadPalette((String) e.widget.getData())); recentPalettesMenuManager.loadRecent(); recentAnimationsMenuManager = new RecentMenuManager("recentAnimations", 4, mntmRecentAnimations, e -> aniAction.loadAni(((String) e.widget.getData()), true, false)); recentAnimationsMenuManager.loadRecent(); resManager = new LocalResourceManager(JFaceResources.getResources(), shell); Label lblAnimations = new Label(shell, SWT.NONE); lblAnimations.setText("Animations"); Label lblKeyframes = new Label(shell, SWT.NONE); lblKeyframes.setText("KeyFrames"); Label lblPreview = new Label(shell, SWT.NONE); lblPreview.setText("Preview"); new Label(shell, SWT.NONE); aniListViewer = new TableViewer(shell, SWT.BORDER | SWT.V_SCROLL); Table aniList = aniListViewer.getTable(); GridData gd_aniList = new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1); gd_aniList.widthHint = 189; aniList.setLayoutData(gd_aniList); aniList.setLinesVisible(true); aniList.addKeyListener(new EscUnselect(aniListViewer)); aniListViewer.setContentProvider(ArrayContentProvider.getInstance()); aniListViewer.setLabelProvider(new LabelProviderAdapter(o -> ((Animation) o).getDesc())); aniListViewer.setInput(animations.values()); aniListViewer.addSelectionChangedListener(event -> { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); onAnimationSelectionChanged(selection.size() > 0 ? (Animation) selection.getFirstElement() : null); }); TableViewerColumn viewerCol1 = new TableViewerColumn(aniListViewer, SWT.LEFT); viewerCol1.setEditingSupport( new GenericTextCellEditor(aniListViewer, e -> ((Animation) e).getDesc(), (e, v) -> { Animation ani = (Animation) e; updateAnimationMapKey(ani.getDesc(), v); ani.setDesc(v); frameSeqViewer.refresh(); })); viewerCol1.getColumn().setWidth(220); viewerCol1.setLabelProvider(new ColumnLabelProviderAdapter(o -> ((Animation) o).getDesc())); keyframeTableViewer = new TableViewer(shell, SWT.SINGLE | SWT.V_SCROLL); Table keyframeList = keyframeTableViewer.getTable(); GridData gd_keyframeList = new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1); gd_keyframeList.widthHint = 137; keyframeList.setLinesVisible(true); keyframeList.setLayoutData(gd_keyframeList); keyframeList.addKeyListener(new EscUnselect(keyframeTableViewer)); //keyframeTableViewer.setLabelProvider(new KeyframeLabelProvider(shell)); keyframeTableViewer.setContentProvider(ArrayContentProvider.getInstance()); keyframeTableViewer.setInput(project.palMappings); keyframeTableViewer.addSelectionChangedListener(event -> keyFrameChanged(event)); TableViewerColumn viewerColumn = new TableViewerColumn(keyframeTableViewer, SWT.LEFT); viewerColumn.setEditingSupport( new GenericTextCellEditor(keyframeTableViewer, e -> ((PalMapping) e).name, (e, v) -> { ((PalMapping) e).name = v; })); viewerColumn.getColumn().setWidth(200); viewerColumn.setLabelProvider(new KeyframeLabelProvider(shell)); dmdWidget = new DMDWidget(shell, SWT.DOUBLE_BUFFERED, this.dmd, true); // dmdWidget.setBounds(0, 0, 700, 240); GridData gd_dmdWidget = new GridData(SWT.FILL, SWT.FILL, false, false, 2, 1); gd_dmdWidget.heightHint = 231; gd_dmdWidget.widthHint = 826; dmdWidget.setLayoutData(gd_dmdWidget); dmdWidget.setPalette(activePalette); dmdWidget.addListeners(l -> frameChanged(l)); Composite composite_1 = new Composite(shell, SWT.NONE); composite_1.setLayout(new GridLayout(2, false)); GridData gd_composite_1 = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_composite_1.heightHint = 35; gd_composite_1.widthHint = 206; composite_1.setLayoutData(gd_composite_1); btnRemoveAni = new Button(composite_1, SWT.NONE); btnRemoveAni.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1)); btnRemoveAni.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { } }); btnRemoveAni.setText("Remove"); btnRemoveAni.setEnabled(false); btnRemoveAni.addListener(SWT.Selection, e -> { if (selectedAnimation.isPresent()) { String key = selectedAnimation.get().getDesc(); animations.remove(key); playingAnis.clear(); animationHandler.setAnimations(playingAnis); animationHandler.setClockActive(true); } }); btnSortAni = new Button(composite_1, SWT.NONE); btnSortAni.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1)); btnSortAni.setText("Sort"); btnSortAni.addListener(SWT.Selection, e -> sortAnimations()); Composite composite_2 = new Composite(shell, SWT.NONE); composite_2.setLayout(new GridLayout(3, false)); GridData gd_composite_2 = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_composite_2.heightHint = 35; gd_composite_2.widthHint = 157; composite_2.setLayoutData(gd_composite_2); btnDeleteKeyframe = new Button(composite_2, SWT.NONE); GridData gd_btnDeleteKeyframe = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_btnDeleteKeyframe.widthHint = 88; btnDeleteKeyframe.setLayoutData(gd_btnDeleteKeyframe); btnDeleteKeyframe.setText("Remove"); btnDeleteKeyframe.setEnabled(false); btnDeleteKeyframe.addListener(SWT.Selection, e -> { if (selectedPalMapping != null) { project.palMappings.remove(selectedPalMapping); keyframeTableViewer.refresh(); checkReleaseMask(); } }); Button btnSortKeyFrames = new Button(composite_2, SWT.NONE); btnSortKeyFrames.setText("Sort"); btnSortKeyFrames.addListener(SWT.Selection, e -> sortKeyFrames()); new Label(composite_2, SWT.NONE); scale = new Scale(shell, SWT.NONE); scale.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1)); scale.addListener(SWT.Selection, e -> animationHandler.setPos(scale.getSelection())); Group grpKeyframe = new Group(shell, SWT.NONE); grpKeyframe.setLayout(new GridLayout(3, false)); GridData gd_grpKeyframe = new GridData(SWT.FILL, SWT.TOP, false, false, 2, 4); gd_grpKeyframe.heightHint = 191; gd_grpKeyframe.widthHint = 350; grpKeyframe.setLayoutData(gd_grpKeyframe); grpKeyframe.setText("KeyFrames"); Composite composite_hash = new Composite(grpKeyframe, SWT.NONE); //gd_composite_hash.widthHint = 105; GridData gd_composite_hash = new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1); gd_composite_hash.widthHint = 148; composite_hash.setLayoutData(gd_composite_hash); createHashButtons(composite_hash, 10, 0); previewDmd = new DMDWidget(grpKeyframe, SWT.DOUBLE_BUFFERED, dmd, false); GridData gd_dmdPreWidget = new GridData(SWT.CENTER, SWT.TOP, false, false, 1, 1); gd_dmdPreWidget.heightHint = 40; gd_dmdPreWidget.widthHint = 132; previewDmd.setLayoutData(gd_dmdPreWidget); previewDmd.setDrawingEnabled(false); previewDmd.setPalette(previewPalettes.get(0)); new Label(grpKeyframe, SWT.NONE); btnAddColormaskKeyFrame = new Button(grpKeyframe, SWT.NONE); btnAddColormaskKeyFrame .setToolTipText("Adds a key frame that trigger a color masking scene to be overlayed"); btnAddColormaskKeyFrame.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); btnAddColormaskKeyFrame.setText("Add ColorMask"); btnAddColormaskKeyFrame.setEnabled(false); btnAddColormaskKeyFrame.addListener(SWT.Selection, e -> addFrameSeq(SwitchMode.ADD)); btnAddKeyframe = new Button(grpKeyframe, SWT.NONE); btnAddKeyframe.setToolTipText("Adds a key frame that switches palette"); btnAddKeyframe.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, false, false, 1, 1)); btnAddKeyframe.setText("Add PalSwitch"); btnAddKeyframe.setEnabled(false); btnAddKeyframe.addListener(SWT.Selection, e -> addKeyFrame(SwitchMode.PALETTE)); Label lblDuration = new Label(grpKeyframe, SWT.NONE); lblDuration.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblDuration.setText("Duration:"); txtDuration = new Text(grpKeyframe, SWT.BORDER); GridData gd_txtDuration = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1); gd_txtDuration.widthHint = 93; txtDuration.setLayoutData(gd_txtDuration); txtDuration.setText("0"); txtDuration.addListener(SWT.Verify, e -> e.doit = Pattern.matches("^[0-9]*$", e.text)); txtDuration.addListener(SWT.Modify, e -> { if (selectedPalMapping != null) { selectedPalMapping.durationInMillis = Integer.parseInt(txtDuration.getText()); selectedPalMapping.durationInFrames = (int) selectedPalMapping.durationInMillis / 40; } }); btnFetchDuration = new Button(grpKeyframe, SWT.NONE); btnFetchDuration.setToolTipText( "Fetches duration for palette switches by calculating the difference between actual timestamp and keyframe timestamp"); btnFetchDuration.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); btnFetchDuration.setText("Fetch Duration"); btnFetchDuration.setEnabled(false); btnFetchDuration.addListener(SWT.Selection, e -> { if (selectedPalMapping != null) { selectedPalMapping.durationInMillis = lastTimeCode - saveTimeCode; selectedPalMapping.durationInFrames = (int) selectedPalMapping.durationInMillis / FRAME_RATE; txtDuration.setText(selectedPalMapping.durationInMillis + ""); } }); Label lblNewLabel = new Label(grpKeyframe, SWT.NONE); lblNewLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblNewLabel.setText("FrameSeq:"); frameSeqViewer = new ComboViewer(grpKeyframe, SWT.NONE); Combo frameSeqCombo = frameSeqViewer.getCombo(); frameSeqCombo.setToolTipText("Choose frame sequence to use with key frame"); GridData gd_frameSeqCombo = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1); gd_frameSeqCombo.widthHint = 100; frameSeqCombo.setLayoutData(gd_frameSeqCombo); frameSeqViewer.setLabelProvider(new LabelProviderAdapter(o -> ((Animation) o).getDesc())); frameSeqViewer.setContentProvider(ArrayContentProvider.getInstance()); frameSeqViewer.setInput(frameSeqList); frameSeqViewer.addSelectionChangedListener(event -> frameSeqChanged(event)); btnAddFrameSeq = new Button(grpKeyframe, SWT.NONE); btnAddFrameSeq.setToolTipText("Adds a keyframe that triggers playback of a replacement scene"); btnAddFrameSeq.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); btnAddFrameSeq.setText("Add FrameSeq"); btnAddFrameSeq.addListener(SWT.Selection, e -> addFrameSeq(SwitchMode.REPLACE)); btnAddFrameSeq.setEnabled(false); Group grpDetails = new Group(shell, SWT.NONE); grpDetails.setLayout(new GridLayout(10, false)); GridData gd_grpDetails = new GridData(SWT.FILL, SWT.FILL, false, false, 2, 1); gd_grpDetails.heightHint = 21; gd_grpDetails.widthHint = 776; grpDetails.setLayoutData(gd_grpDetails); grpDetails.setText("Details"); Label lblFrame = new Label(grpDetails, SWT.NONE); lblFrame.setText("Frame:"); lblFrameNo = new Label(grpDetails, SWT.NONE); GridData gd_lblFrameNo = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_lblFrameNo.widthHint = 66; gd_lblFrameNo.minimumWidth = 60; lblFrameNo.setLayoutData(gd_lblFrameNo); lblFrameNo.setText("---"); Label lblTimecode = new Label(grpDetails, SWT.NONE); lblTimecode.setText("Timecode:"); lblTcval = new Label(grpDetails, SWT.NONE); GridData gd_lblTcval = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_lblTcval.widthHint = 62; gd_lblTcval.minimumWidth = 80; lblTcval.setLayoutData(gd_lblTcval); lblTcval.setText("---"); Label lblDelay = new Label(grpDetails, SWT.NONE); lblDelay.setText("Delay:"); lblDelayVal = new Label(grpDetails, SWT.NONE); GridData gd_lblDelayVal = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_lblDelayVal.widthHint = 53; lblDelayVal.setLayoutData(gd_lblDelayVal); lblDelayVal.setText("---"); Label lblPlanes = new Label(grpDetails, SWT.NONE); lblPlanes.setText("Planes:"); lblPlanesVal = new Label(grpDetails, SWT.NONE); lblPlanesVal.setText("---"); new Label(grpDetails, SWT.NONE); btnLivePreview = new Button(grpDetails, SWT.CHECK); btnLivePreview.setToolTipText("controls live preview to real display device"); btnLivePreview.setText("Live Preview"); btnLivePreview.addListener(SWT.Selection, e -> switchLivePreview(e)); Composite composite = new Composite(shell, SWT.NONE); composite.setLayout(new GridLayout(9, false)); composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1)); btnStartStop = new Button(composite, SWT.NONE); btnStartStop.setText("Start"); btnStartStop.addListener(SWT.Selection, e -> startStop(animationHandler.isStopped())); btnPrev = new Button(composite, SWT.NONE); btnPrev.setText("<"); btnPrev.addListener(SWT.Selection, e -> prevFrame()); btnNext = new Button(composite, SWT.NONE); btnNext.setText(">"); btnNext.addListener(SWT.Selection, e -> nextFrame()); btnMarkStart = new Button(composite, SWT.NONE); btnMarkStart.setToolTipText("Marks start of scene for cutting"); btnMarkEnd = new Button(composite, SWT.NONE); btnCut = new Button(composite, SWT.NONE); btnCut.setToolTipText("Cuts out a new scene for editing and use a replacement or color mask"); btnMarkStart.setText("Mark Start"); btnMarkStart.addListener(SWT.Selection, e -> { cutInfo.setStart(selectedAnimation.get().actFrame); }); btnMarkEnd.setText("Mark End"); btnMarkEnd.addListener(SWT.Selection, e -> { cutInfo.setEnd(selectedAnimation.get().actFrame); }); btnCut.setText("Cut"); btnCut.addListener(SWT.Selection, e -> { // respect number of planes while cutting / copying Animation ani = cutScene(selectedAnimation.get(), cutInfo.getStart(), cutInfo.getEnd(), "Scene " + animations.size()); log.info("cutting out scene from {} to {}", cutInfo); cutInfo.reset(); // TODO mark such a scene somehow, to copy it to the // projects frames sequence for later export // alternatively introduce a dedicated flag for scenes that // should be exported // also define a way that a keyframe triggers a replacement // sequence instead of switching // the palette only // TODO NEED TO ADD a reference to the animation in the list // / map project.scenes.add(new Scene(ani.getDesc(), ani.start, ani.end, activePalette.index)); }); new Label(composite, SWT.NONE); Button btnIncPitch = new Button(composite, SWT.NONE); btnIncPitch.setText("+"); btnIncPitch.addListener(SWT.Selection, e -> dmdWidget.incPitch()); Button btnDecPitch = new Button(composite, SWT.NONE); btnDecPitch.setText("-"); btnDecPitch.addListener(SWT.Selection, e -> dmdWidget.decPitch()); Group grpPalettes = new Group(shell, SWT.NONE); grpPalettes.setLayout(new GridLayout(4, false)); GridData gd_grpPalettes = new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1); gd_grpPalettes.widthHint = 479; gd_grpPalettes.heightHint = 71; grpPalettes.setLayoutData(gd_grpPalettes); grpPalettes.setText("Palettes"); paletteComboViewer = new ComboViewer(grpPalettes, SWT.NONE); Combo combo = paletteComboViewer.getCombo(); GridData gd_combo = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1); gd_combo.widthHint = 166; combo.setLayoutData(gd_combo); paletteComboViewer.setContentProvider(ArrayContentProvider.getInstance()); paletteComboViewer .setLabelProvider(new LabelProviderAdapter(o -> ((Palette) o).index + " - " + ((Palette) o).name)); paletteComboViewer.setInput(project.palettes); paletteComboViewer.addSelectionChangedListener(event -> { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); if (selection.size() > 0) { paletteChanged((Palette) selection.getFirstElement()); } }); paletteTypeComboViewer = new ComboViewer(grpPalettes, SWT.READ_ONLY); Combo combo_1 = paletteTypeComboViewer.getCombo(); combo_1.setToolTipText( "Type of palette. Default palette is choosen at start and after timed switch is expired"); GridData gd_combo_1 = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1); gd_combo_1.widthHint = 85; combo_1.setLayoutData(gd_combo_1); paletteTypeComboViewer.setContentProvider(ArrayContentProvider.getInstance()); paletteTypeComboViewer.setInput(PaletteType.values()); paletteTypeComboViewer.setSelection(new StructuredSelection(activePalette.type)); paletteTypeComboViewer.addSelectionChangedListener(e -> paletteTypeChanged(e)); btnNewPalette = new Button(grpPalettes, SWT.NONE); btnNewPalette.setToolTipText("Creates a new palette by copying the actual colors"); btnNewPalette.setText("New"); btnNewPalette.addListener(SWT.Selection, e -> paletteHandler.newPalette()); btnRenamePalette = new Button(grpPalettes, SWT.NONE); btnRenamePalette.setToolTipText("Confirms the new palette name"); btnRenamePalette.setText("Rename"); btnRenamePalette.addListener(SWT.Selection, e -> { String newName = paletteComboViewer.getCombo().getText(); if (newName.contains(" - ")) { activePalette.name = newName.split(" - ")[1]; paletteComboViewer.setSelection(new StructuredSelection(activePalette)); paletteComboViewer.refresh(); } else { warn("Illegal palette name", "Palette names must consist of palette index and name.\nName format therefore must be '<idx> - <name>'"); paletteComboViewer.getCombo().setText(activePalette.index + " - " + activePalette.name); } }); Composite grpPal = new Composite(grpPalettes, SWT.NONE); grpPal.setLayout(new GridLayout(1, false)); GridData gd_grpPal = new GridData(SWT.LEFT, SWT.TOP, false, false, 2, 1); gd_grpPal.widthHint = 313; gd_grpPal.heightHint = 22; grpPal.setLayoutData(gd_grpPal); // GridData gd_grpPal = new GridData(SWT.LEFT, SWT.CENTER, false, false, // 1, 1); // gd_grpPal.widthHint = 223; // gd_grpPal.heightHint = 61; // grpPal.setLayoutData(gd_grpPal); // paletteTool = new PaletteTool(shell, grpPal, SWT.FLAT | SWT.RIGHT, activePalette); paletteTool.addListener(dmdWidget); Label lblCtrlclickToEdit = new Label(grpPalettes, SWT.NONE); GridData gd_lblCtrlclickToEdit = new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1); gd_lblCtrlclickToEdit.widthHint = 139; lblCtrlclickToEdit.setLayoutData(gd_lblCtrlclickToEdit); lblCtrlclickToEdit.setText("Ctrl-Click to edit color"); Composite composite_3 = new Composite(shell, SWT.NONE); GridLayout gl_composite_3 = new GridLayout(1, false); gl_composite_3.marginWidth = 0; gl_composite_3.marginHeight = 0; composite_3.setLayout(gl_composite_3); GridData gd_composite_3 = new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 2); gd_composite_3.heightHint = 190; gd_composite_3.widthHint = 338; composite_3.setLayoutData(gd_composite_3); goDmdGroup = new GoDmdGroup(composite_3); Group grpDrawing = new Group(shell, SWT.NONE); grpDrawing.setLayout(new GridLayout(6, false)); GridData gd_grpDrawing = new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1); gd_grpDrawing.heightHint = 63; gd_grpDrawing.widthHint = 479; grpDrawing.setLayoutData(gd_grpDrawing); grpDrawing.setText("Drawing"); drawToolBar = new ToolBar(grpDrawing, SWT.FLAT | SWT.RIGHT); drawToolBar.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); ToolItem tltmPen = new ToolItem(drawToolBar, SWT.RADIO); tltmPen.setImage( resManager.createImage(ImageDescriptor.createFromFile(PinDmdEditor.class, "/icons/pencil.png"))); tltmPen.addListener(SWT.Selection, e -> dmdWidget.setDrawTool(drawTools.get("pencil"))); ToolItem tltmFill = new ToolItem(drawToolBar, SWT.RADIO); tltmFill.setImage(resManager .createImage(ImageDescriptor.createFromFile(PinDmdEditor.class, "/icons/color-fill.png"))); tltmFill.addListener(SWT.Selection, e -> dmdWidget.setDrawTool(drawTools.get("fill"))); ToolItem tltmRect = new ToolItem(drawToolBar, SWT.RADIO); tltmRect.setImage( resManager.createImage(ImageDescriptor.createFromFile(PinDmdEditor.class, "/icons/rect.png"))); tltmRect.addListener(SWT.Selection, e -> dmdWidget.setDrawTool(drawTools.get("rect"))); ToolItem tltmLine = new ToolItem(drawToolBar, SWT.RADIO); tltmLine.setImage( resManager.createImage(ImageDescriptor.createFromFile(PinDmdEditor.class, "/icons/line.png"))); tltmLine.addListener(SWT.Selection, e -> dmdWidget.setDrawTool(drawTools.get("line"))); ToolItem tltmCircle = new ToolItem(drawToolBar, SWT.RADIO); tltmCircle.setImage( resManager.createImage(ImageDescriptor.createFromFile(PinDmdEditor.class, "/icons/oval.png"))); tltmCircle.addListener(SWT.Selection, e -> dmdWidget.setDrawTool(drawTools.get("circle"))); ToolItem tltmColorize = new ToolItem(drawToolBar, SWT.RADIO); tltmColorize.setImage( resManager.createImage(ImageDescriptor.createFromFile(PinDmdEditor.class, "/icons/colorize.png"))); tltmColorize.addListener(SWT.Selection, e -> dmdWidget.setDrawTool(drawTools.get("colorize"))); drawTools.put("pencil", new SetPixelTool(paletteTool.getSelectedColor())); drawTools.put("fill", new FloodFillTool(paletteTool.getSelectedColor())); drawTools.put("rect", new RectTool(paletteTool.getSelectedColor())); drawTools.put("line", new LineTool(paletteTool.getSelectedColor())); drawTools.put("circle", new CircleTool(paletteTool.getSelectedColor())); drawTools.put("colorize", new ColorizeTool(paletteTool.getSelectedColor())); drawTools.values().forEach(d -> paletteTool.addIndexListener(d)); paletteTool.addListener(palette -> { if (livePreviewActive) { connector.upload(activePalette, handle); } }); new Label(grpDrawing, SWT.NONE); btnColorMask = new Button(grpDrawing, SWT.CHECK); btnColorMask.setToolTipText("limits drawing to upper planes, so that this will just add coloring layers"); btnColorMask.setText("ColMask"); btnColorMask.addListener(SWT.Selection, e -> switchColorMask(btnColorMask.getSelection())); Label lblMaskNo = new Label(grpDrawing, SWT.NONE); lblMaskNo.setText("Mask No:"); maskSpinner = new Spinner(grpDrawing, SWT.BORDER); maskSpinner.setToolTipText("select the mask to use"); maskSpinner.setMinimum(0); maskSpinner.setMaximum(9); maskSpinner.addListener(SWT.Selection, e -> maskNumberChanged(e)); btnMask = new Button(grpDrawing, SWT.CHECK); btnMask.setText("Show Mask"); btnMask.addListener(SWT.Selection, e -> switchMask(btnMask.getSelection())); btnCopyToPrev = new Button(grpDrawing, SWT.NONE); btnCopyToPrev.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); btnCopyToPrev.setText("CopyToPrev"); btnCopyToPrev.addListener(SWT.Selection, e -> copyAndMoveToPrevFrame()); new Label(grpDrawing, SWT.NONE); btnCopyToNext = new Button(grpDrawing, SWT.NONE); btnCopyToNext.setToolTipText("copy the actual scene / color mask to next frame and move forward"); btnCopyToNext.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1)); btnCopyToNext.setText("CopyToNext"); btnCopyToNext.addListener(SWT.Selection, e -> copyAndMoveToNextFrame()); btnUndo = new Button(grpDrawing, SWT.NONE); btnUndo.setText("&Undo"); btnUndo.addListener(SWT.Selection, e -> undo()); btnRedo = new Button(grpDrawing, SWT.NONE); btnRedo.setText("&Redo"); btnRedo.addListener(SWT.Selection, e -> redo()); ObserverManager.bind(maskDmdObserver, e -> btnUndo.setEnabled(e), () -> maskDmdObserver.canUndo()); ObserverManager.bind(maskDmdObserver, e -> btnRedo.setEnabled(e), () -> maskDmdObserver.canRedo()); }
From source file:com.salesforce.ide.ui.editors.properysheets.widgets.PackageVersionWidget.java
License:Open Source License
public void addTo(Composite composite) { tableViewer = new TableViewer(composite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER); tableViewer.setContentProvider(ArrayContentProvider.getInstance()); tableViewer.getTable().setHeaderVisible(true); GridData gridData = new GridData(); gridData.verticalAlignment = GridData.FILL; gridData.minimumHeight = TABLE_MIN_HEIGHT; gridData.horizontalSpan = 2;/*from w ww . j a va 2 s.co m*/ gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; tableViewer.getControl().setLayoutData(gridData); namespaceColumn = new TableViewerColumn(tableViewer, SWT.BORDER); namespaceColumn.getColumn().setWidth(NAMESPACE_COL_WIDTH); namespaceColumn.getColumn().setText(EditorMessages.getString("PackageVersionWidget.NamespaceColumn")); //$NON-NLS-1$ namespaceColumn.setLabelProvider(new NamespaceLabelProvider()); versionColumn = new TableViewerColumn(tableViewer, SWT.BORDER); versionColumn.getColumn().setWidth(VERSION_COL_WIDTH); versionColumn.getColumn().setText(EditorMessages.getString("PackageVersionWidget.VersionColumn")); //$NON-NLS-1$ versionColumn.setLabelProvider(new VersionLabelProvider()); versionColumnEditingSupport = new VersionColumnEditingSupport(tableViewer); versionColumn.setEditingSupport(versionColumnEditingSupport); }
From source file:com.skratchdot.electribe.model.esx.editor.util.EsxEditorUtil.java
License:Open Source License
/** * @param tableViewer The TableViewer that a column will be added to * @param text The name of the column. Will show up in the column header. * @param width If null, then pack() will be called. If a valid integer, then the column will have this width *//*from w w w .j a v a 2 s .c o m*/ public static void addColumnToTableViewer(TableViewer tableViewer, String text, Integer width) { TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE); TableColumn column = tableViewerColumn.getColumn(); column.setText(text); if (width == null) { column.pack(); } else { column.setWidth(width); } }
From source file:com.smartmonkey.recrep.SMonkeyViewer.java
License:Apache License
/** * Create contents of the application window. * //from w w w .j av a 2s . co m * @param parent */ @Override protected Control createContents(Composite parent) { parent.setLayout(new FillLayout()); SashForm baseSash = new SashForm(parent, SWT.HORIZONTAL | SWT.NONE); // draw the canvas with border, so the divider area for sash form can be // highlighted SashForm leftSash = new SashForm(baseSash, SWT.VERTICAL); mScreenshotCanvas = new Canvas(leftSash, SWT.BORDER | SWT.NO_REDRAW_RESIZE); mScreenshotCanvas.addMouseListener(new MouseAdapter() { @Override public void mouseUp(MouseEvent e) { if (e.button == 3) // Right Click { SMonkeyModel.getModel().toggleExploreMode(); } else if (e.button == 1) // Left Click { SMonkeyModel.getModel().touch(); } } }); mScreenshotCanvas.setBackground(getShell().getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); mScreenshotCanvas.addPaintListener(new PaintListener() { @Override public void paintControl(PaintEvent e) { Image image = SMonkeyModel.getModel().getScreenshot(); if (image != null) { updateScreenshotTransformation(); // shifting the image here, so that there's a border around // screen shot // this makes highlighting red rectangles on the screen shot // edges more visible Transform t = new Transform(e.gc.getDevice()); t.translate(mDx, mDy); t.scale(mScale, mScale); e.gc.setTransform(t); e.gc.drawImage(image, 0, 0); // this resets the transformation to identity transform, // i.e. no change // we don't use transformation here because it will cause // the line pattern // and line width of highlight rect to be scaled, causing to // appear to be blurry e.gc.setTransform(null); if (SMonkeyModel.getModel().shouldShowNafNodes()) { // highlight the "Not Accessibility Friendly" nodes e.gc.setForeground(e.gc.getDevice().getSystemColor(SWT.COLOR_YELLOW)); e.gc.setBackground(e.gc.getDevice().getSystemColor(SWT.COLOR_YELLOW)); for (Rectangle r : SMonkeyModel.getModel().getNafNodes()) { e.gc.setAlpha(50); e.gc.fillRectangle(mDx + getScaledSize(r.x), mDy + getScaledSize(r.y), getScaledSize(r.width), getScaledSize(r.height)); e.gc.setAlpha(255); e.gc.setLineStyle(SWT.LINE_SOLID); e.gc.setLineWidth(2); e.gc.drawRectangle(mDx + getScaledSize(r.x), mDy + getScaledSize(r.y), getScaledSize(r.width), getScaledSize(r.height)); } } // draw the mouseover rects Rectangle rect = SMonkeyModel.getModel().getCurrentDrawingRect(); if (rect != null) { e.gc.setForeground(e.gc.getDevice().getSystemColor(SWT.COLOR_RED)); if (SMonkeyModel.getModel().isExploreMode()) { // when we highlight nodes dynamically on mouse // move, // use dashed borders e.gc.setLineStyle(SWT.LINE_DASH); e.gc.setLineWidth(1); } else { // when highlighting nodes on tree node selection, // use solid borders e.gc.setLineStyle(SWT.LINE_SOLID); e.gc.setLineWidth(2); } e.gc.drawRectangle(mDx + getScaledSize(rect.x), mDy + getScaledSize(rect.y), getScaledSize(rect.width), getScaledSize(rect.height)); } } } }); mScreenshotCanvas.addMouseMoveListener(new MouseMoveListener() { @Override public void mouseMove(MouseEvent e) { if (SMonkeyModel.getModel().isExploreMode()) { SMonkeyModel.getModel().updateSelectionForCoordinates(getInverseScaledSize(e.x - mDx), getInverseScaledSize(e.y - mDy)); } } }); // Lower Left Base contains the physical buttons on the phone SashForm lowerLeftBase = new SashForm(leftSash, SWT.HORIZONTAL); Composite buttonComposite = new Composite(lowerLeftBase, SWT.BORDER); ToolBarManager physicalButtonToolbarManager = new ToolBarManager(); physicalButtonToolbarManager.add(new Action() { @Override public ImageDescriptor getImageDescriptor() { return ImageHelper.loadImageDescriptorFromResource("images/back_gray.png"); } public void run() { SMonkeyModel.getModel().pressButton(PhysicalButton.BACK); } }); physicalButtonToolbarManager.add(new Action() { @Override public ImageDescriptor getImageDescriptor() { return ImageHelper.loadImageDescriptorFromResource("images/menu_gray.png"); } public void run() { SMonkeyModel.getModel().pressButton(PhysicalButton.MENU); } }); physicalButtonToolbarManager.add(new Action() { @Override public ImageDescriptor getImageDescriptor() { return ImageHelper.loadImageDescriptorFromResource("images/home_gray.png"); } public void run() { SMonkeyModel.getModel().pressButton(PhysicalButton.HOME); } }); physicalButtonToolbarManager.add(new Action() { @Override public ImageDescriptor getImageDescriptor() { return ImageHelper.loadImageDescriptorFromResource("images/noop.png"); } public void run() { SMonkeyModel.getModel().noop(); } }); physicalButtonToolbarManager.add(mFBLoginAction); physicalButtonToolbarManager.createControl(buttonComposite); Composite textComposite = new Composite(lowerLeftBase, SWT.BORDER); mText = new Text(textComposite, SWT.SINGLE); mSendTextButton = new Button(textComposite, SWT.PUSH); mSendTextButton.setText("Send\nText"); mSendTextButton.addMouseListener(new MouseAdapter() { @Override public void mouseUp(MouseEvent e) { SMonkeyModel.getModel().sendText(mText.getText()); } }); textComposite.setLayout(new FillLayout()); leftSash.setWeights(new int[] { 6, 1 }); // middle sash contains the list of events, which are highlighted as // they happen. // TODO: Add a fast forward button to perform the next event, skipping // the wait SashForm middleSash = new SashForm(baseSash, SWT.VERTICAL); ToolBarManager replayToolbarManager = new ToolBarManager(SWT.FLAT); replayToolbarManager.add(mClearRecordingAction); replayToolbarManager.add(mOpenRecordFileAction); replayToolbarManager.add(mSaveRecordFileAction); replayToolbarManager.add(mToggleAutoRefreshAction); replayToolbarManager.add(mReplayAction); replayToolbarManager.createControl(middleSash); chimpEventTableViewer = new TableViewer(middleSash, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER); chimpEventTableViewer.getTable().setMenu(new Menu(chimpEventTableViewer.getTable())); TableViewerColumn waitColumn = new TableViewerColumn(chimpEventTableViewer, SWT.NONE); waitColumn.getColumn().setText("Wait time"); waitColumn.getColumn().setWidth(100); waitColumn.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof ChimpEvent) { ChimpEvent chimp = (ChimpEvent) element; return chimp.getWait(); } return super.getText(element); } }); TableViewerColumn typeColumn = new TableViewerColumn(chimpEventTableViewer, SWT.NONE); typeColumn.getColumn().setText("Type"); typeColumn.getColumn().setWidth(100); typeColumn.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof ChimpEvent) { ChimpEvent chimp = (ChimpEvent) element; return chimp.getType(); } return super.getText(element); } }); TableViewerColumn miscColumn = new TableViewerColumn(getChimpEventTableViewer(), SWT.NONE); miscColumn.getColumn().setText("Misc"); miscColumn.getColumn().setWidth(100); miscColumn.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof ChimpEvent) { ChimpEvent chimp = (ChimpEvent) element; return chimp.getMisc(); } return super.getText(element); } }); chimpEventTableViewer.getTable().setLinesVisible(true); chimpEventTableViewer.getTable().setHeaderVisible(true); chimpEventTableViewer.setContentProvider(ArrayContentProvider.getInstance()); chimpEventTableViewer.setInput(SMonkeyModel.getModel().getLog()); middleSash.setWeights(new int[] { 1, 20 }); // right sash is split into 2 parts: upper-right and lower-right // both are composites with borders, so that the horizontal divider can // be highlighted by // the borders SashForm rightSash = new SashForm(baseSash, SWT.VERTICAL); // upper-right base contains the toolbar and the tree Composite upperRightBase = new Composite(rightSash, SWT.BORDER); upperRightBase.setLayout(new GridLayout(1, false)); ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT); toolBarManager.add(mOpenFilesAction); toolBarManager.add(mSaveFilesAction); toolBarManager.add(mExpandAllAction); toolBarManager.add(mScreenshotAction); toolBarManager.add(mToggleNafAction); // toolBarManager.add(mClearRecordingAction); // toolBarManager.add(mSaveRecordingAction); toolBarManager.createControl(upperRightBase); // Button b = new Button(upperRightBase.getShell(),SWT.CHECK); // b.setText("Auto"); mTreeViewer = new TreeViewer(upperRightBase, SWT.NONE); mTreeViewer.setContentProvider(new BasicTreeNodeContentProvider()); // default LabelProvider uses toString() to generate text to display mTreeViewer.setLabelProvider(new LabelProvider()); mTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { if (event.getSelection().isEmpty()) { SMonkeyModel.getModel().setSelectedNode(null); } else if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); Object o = selection.toArray()[0]; if (o instanceof BasicTreeNode) { SMonkeyModel.getModel().setSelectedNode((BasicTreeNode) o); } } } }); Tree tree = mTreeViewer.getTree(); tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); // move focus so that it's not on tool bar (looks weird) tree.setFocus(); // lower-right base contains the detail group Composite lowerRightBase = new Composite(rightSash, SWT.BORDER); lowerRightBase.setLayout(new FillLayout()); Group grpNodeDetail = new Group(lowerRightBase, SWT.NONE); grpNodeDetail.setLayout(new FillLayout(SWT.HORIZONTAL)); grpNodeDetail.setText("Node Detail"); Composite tableContainer = new Composite(grpNodeDetail, SWT.NONE); TableColumnLayout columnLayout = new TableColumnLayout(); tableContainer.setLayout(columnLayout); mTableViewer = new TableViewer(tableContainer, SWT.NONE | SWT.FULL_SELECTION); Table table = mTableViewer.getTable(); table.setLinesVisible(true); // use ArrayContentProvider here, it assumes the input to the // TableViewer // is an array, where each element represents a row in the table mTableViewer.setContentProvider(ArrayContentProvider.getInstance()); TableViewerColumn tableViewerColumnKey = new TableViewerColumn(mTableViewer, SWT.NONE); TableColumn tblclmnKey = tableViewerColumnKey.getColumn(); tableViewerColumnKey.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof AttributePair) { // first column, shows the attribute name return ((AttributePair) element).key; } return super.getText(element); } }); columnLayout.setColumnData(tblclmnKey, new ColumnWeightData(1, ColumnWeightData.MINIMUM_WIDTH, true)); TableViewerColumn tableViewerColumnValue = new TableViewerColumn(mTableViewer, SWT.NONE); tableViewerColumnValue.setEditingSupport(new AttributeTableEditingSupport(mTableViewer)); TableColumn tblclmnValue = tableViewerColumnValue.getColumn(); columnLayout.setColumnData(tblclmnValue, new ColumnWeightData(2, ColumnWeightData.MINIMUM_WIDTH, true)); tableViewerColumnValue.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof AttributePair) { // second column, shows the attribute value return ((AttributePair) element).value; } return super.getText(element); } }); // sets the ratio of the vertical split: left 5 vs middle 3 vs right 3 baseSash.setWeights(new int[] { 5, 5, 3 }); return baseSash; }
From source file:com.softberries.klerk.gui.editors.GenericKlerkEditor.java
License:Open Source License
protected TableViewerColumn createTableViewerColumn(String title, int bound, final int colNumber) { final TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE); final TableColumn column = viewerColumn.getColumn(); column.setText(title);//from w w w. ja v a 2 s. com column.setWidth(bound); column.setResizable(true); column.setMoveable(true); column.addSelectionListener(getSelectionAdapter(column, colNumber)); return viewerColumn; }
From source file:com.softberries.klerk.gui.editors.SingleCompanyEditor.java
License:Open Source License
private TableViewerColumn createTableViewerColumn(TableViewer viewer, String title, int bound, final int colNumber) { final TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE); final TableColumn column = viewerColumn.getColumn(); column.setText(title);//w ww . ja v a 2s .co m column.setWidth(bound); column.setResizable(true); column.setMoveable(true); return viewerColumn; }
From source file:com.softberries.klerk.gui.editors.SingleDocumentEditor.java
License:Open Source License
private TableViewerColumn createTableViewerColumn(TableViewer viewer, String title, int bound, final int colNumber) { final TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE); final TableColumn column = viewerColumn.getColumn(); column.setText(title);/*from ww w . jav a 2s . c o m*/ column.setWidth(bound); column.setResizable(true); column.setMoveable(true); column.addSelectionListener(getSelectionAdapter(column, colNumber)); return viewerColumn; }
From source file:com.softberries.klerk.gui.views.DocumentDetailsView.java
License:Open Source License
private TableViewerColumn createTableViewerColumn(String title, int bound, final int colNumber) { final TableViewerColumn viewerColumn = new TableViewerColumn(tableViewer, SWT.NONE); final TableColumn column = viewerColumn.getColumn(); column.setText(title);/* ww w . j a v a 2 s .c o m*/ column.setWidth(bound); column.setResizable(true); column.setMoveable(true); return viewerColumn; }
From source file:com.subgraph.vega.ui.http.builder.HeaderEditor.java
License:Open Source License
private void createHeaderTableColumns(TableViewer viewer, TableColumnLayout layout) { final String[] titles = { "Name", "Value", }; final ColumnLayoutData[] layoutData = { new ColumnPixelData(120, true, true), new ColumnWeightData(100, 100, true), }; final EditingSupport editorList[] = { new HeaderNameEditingSupport(viewer), new HeaderValueEditingSupport(viewer), }; final ColumnLabelProvider providerList[] = { new ColumnLabelProvider() { @Override/*from w ww . j a v a 2 s.co m*/ public String getText(Object element) { return ((IHttpHeaderBuilder) element).getName(); } }, new ColumnLabelProvider() { @Override public String getText(Object element) { return ((IHttpHeaderBuilder) element).getValue(); } }, }; for (int i = 0; i < titles.length; i++) { final TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE); final TableColumn c = column.getColumn(); layout.setColumnData(c, layoutData[i]); c.setText(titles[i]); c.setMoveable(true); column.setEditingSupport(editorList[i]); column.setLabelProvider(providerList[i]); } }
From source file:com.subgraph.vega.ui.http.intercept.config.ConfigureInterceptionContent.java
License:Open Source License
private void createTableBreakpointsColumns(TableViewer viewer, TableColumnLayout layout) { final String[] titles = { "", "Type", "Matches", "Pattern", }; final ColumnLayoutData[] layoutData = { new ColumnPixelData(16, false, true), new ColumnPixelData(150, true, true), new ColumnPixelData(150, true, true), new ColumnWeightData(100, 100, true), }; final EditingSupport editorList[] = { new BreakpointEnabledEditingSupport(viewer), new BreakpointTypeEditingSupport(viewer), new BreakpointMatchTypeEditingSupport(viewer), new BreakpointPatternEditingSupport(viewer), }; final ColumnLabelProvider providerList[] = { new ColumnLabelProvider() { @Override//from w ww . j a v a2s . c o m public String getText(Object element) { return null; } @Override public Image getImage(Object element) { if (((IHttpCondition) element).isEnabled()) { return IMAGE_CHECKED; } else { return IMAGE_UNCHECKED; } } }, new ColumnLabelProvider() { @Override public String getText(Object element) { return ((IHttpCondition) element).getType().getName(); } }, new ColumnLabelProvider() { @Override public String getText(Object element) { IHttpCondition condition = (IHttpCondition) element; return condition.getMatchAction().getLabel(); } }, new ColumnLabelProvider() { @Override public String getText(Object element) { IHttpCondition condition = (IHttpCondition) element; return condition.getMatchAction().getArgumentAsString(); } }, }; for (int i = 0; i < titles.length; i++) { final TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE); final TableColumn c = column.getColumn(); layout.setColumnData(c, layoutData[i]); c.setText(titles[i]); c.setMoveable(true); column.setEditingSupport(editorList[i]); column.setLabelProvider(providerList[i]); } }