List of usage examples for org.eclipse.jface.resource LocalResourceManager LocalResourceManager
public LocalResourceManager(ResourceManager parentRegistry, Control owner)
From source file:com.google.gapid.views.ActivityPickerDialog.java
License:Apache License
@Override protected Control createDialogArea(Composite parent) { Composite area = (Composite) super.createDialogArea(parent); Composite container = createComposite(area, new GridLayout(1, false)); container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); SearchBox search = new SearchBox(container, true); search.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); loading = LoadablePanel.create(container, widgets, p -> createTreeForViewer(p, SWT.BORDER)); loading.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); tree = Widgets.createTreeViewer(loading.getContents()); tree.setContentProvider(new PackageContentProvider()); labelProvider = new PackageLabelProvider(widgets.theme); tree.setLabelProvider(new DelegatingStyledCellLabelProvider(labelProvider)); tree.setComparator(new ViewerComparator()); // Sort by name. tree.getTree().addListener(SWT.Selection, e -> { selected = Action.getFor((TreeItem) e.item); });//from ww w . j a va 2 s.c om resources = new LocalResourceManager(JFaceResources.getResources(), tree.getTree()); update(); search.addListener(Events.Search, e -> { if (e.text.isEmpty()) { tree.resetFilters(); return; } Pattern pattern = SearchBox.getPattern(e.text, (e.detail & Events.REGEX) != 0); tree.setFilters(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { return !(element instanceof PkgInfo.Package) || pattern.matcher(((PkgInfo.Package) element).getName()).find(); } }); }); return area; }
From source file:com.mousefeed.eclipse.preferences.presentation.PresentationModePreferencePage.java
License:Open Source License
private void createColumns(final TableViewer viewer) { final LocalResourceManager resManager = new LocalResourceManager(JFaceResources.getResources(), viewer.getTable());/*w ww .ja v a2 s .c om*/ createTableViewerColumn(viewer, "Scheme", 150, new ColumnLabelProvider() { @Override public String getText(Object element) { String schemeId = ((SchemeConfig) element).getSchemeId(); Scheme scheme = bindingService.getScheme(schemeId); if (scheme != null && scheme.isDefined()) { try { return scheme.getName(); } catch (NotDefinedException e) { // can not happen e.printStackTrace(); } } return "Undefined (" + schemeId + ")"; } }, null); createTableViewerColumn(viewer, "Label", 50, new ColumnLabelProvider() { @Override public String getText(Object element) { return ((SchemeConfig) element).getLabel(); } }, new TextEditingSupport<SchemeConfig>(viewer, SchemeConfig.class) { @Override protected String getStringValue(SchemeConfig element) { return element.getLabel(); } @Override protected void setStringValue(SchemeConfig element, String value) { element.setLabel(value); viewer.refresh(); } }); createTableViewerColumn(viewer, "Color", 150, new ColumnLabelProvider() { @Override public String getText(Object element) { return ""; } @Override public Color getBackground(Object element) { return resManager.createColor(((SchemeConfig) element).getColorCode()); } }, new ColorEditingSupport<SchemeConfig>(viewer, SchemeConfig.class) { @Override protected RGB getRGBValue(SchemeConfig element) { return element.getColorCode(); } @Override protected void setRGBValue(SchemeConfig element, RGB value) { element.setColorCode(value); viewer.refresh(); } }); }
From source file:com.rinke.solutions.pinball.PinDmdEditor.java
/** * Create contents of the window.//from w w w . java 2 s.co 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:net.sourceforge.czt.eclipse.ui.internal.editors.zeditor.ZEditor.java
License:Open Source License
/** * Creates the outline page used with this fEditor. * * @return the created Java outline page *//*ww w.j av a 2 s . c o m*/ protected ZContentOutlinePage createOutlinePage() { ZContentOutlinePage page = new ZContentOutlinePage(fOutlinerContextMenuId, this, new LocalResourceManager(JFaceResources.getResources(), getViewer().getTextWidget())); fOutlineSelectionChangedListener.install(page); setOutlinePageInput(page, model.getParsedData()); return page; }
From source file:net.yatomiya.e4.ui.util.UIResourceManager.java
License:Open Source License
public UIResourceManager(Control disposer) { resMgr = new LocalResourceManager(JFaceResources.getResources(), disposer); }
From source file:no.itpr.parser.handlers.TimeZoneTreeView.java
License:Open Source License
public void createPartControl(Composite parent) { ResourceManager rm = JFaceResources.getResources(); LocalResourceManager lrm = new LocalResourceManager(rm, parent); ImageRegistry ir = new ImageRegistry(lrm); FontRegistry fr = JFaceResources.getFontRegistry(); URL sample = getClass().getResource("/icons/sample.gif"); ir.put("sample", ImageDescriptor.createFromURL(sample)); treeViewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); treeViewer.setLabelProvider(new DelegatingStyledCellLabelProvider(new TimeZoneLabelProvider(ir, fr))); treeViewer.setContentProvider(new TimeZoneContentProvider()); treeViewer.setInput(new Object[] { TimeZoneComparator.getTimeZones() }); treeViewer.setData("REVERSE", Boolean.TRUE); treeViewer.setFilters(new ViewerFilter[] { new TimeZoneViewerFilter("GMT") }); treeViewer.setExpandPreCheckFilters(true); treeViewer.setComparator(new TimeZoneViewerComparator()); treeViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { Viewer viewer = event.getViewer(); Shell shell = viewer.getControl().getShell(); ISelection sel = viewer.getSelection(); Object selectedValue; if (!(sel instanceof IStructuredSelection) || sel.isEmpty()) { selectedValue = null;/* w w w . j a va 2s. c o m*/ } else { selectedValue = ((IStructuredSelection) sel).getFirstElement(); } if (selectedValue instanceof TimeZone) { TimeZone timeZone = (TimeZone) selectedValue; new TimeZoneDialog(shell, timeZone).open(); } } }); getSite().setSelectionProvider(treeViewer); selectionListener = new TimeZoneSelectionListener(treeViewer, getSite().getPart()); getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(selectionListener); }
From source file:org.csstudio.trends.databrowser2.propsheet.AxesTableHandler.java
License:Open Source License
/** Initialize * @param parent/*from w w w .j a v a 2 s. c o m*/ * @param table_layout * @param operations_manager */ public AxesTableHandler(final Composite parent, final TableColumnLayout table_layout, final UndoableActionManager operations_manager) { color_registry = new LocalResourceManager(JFaceResources.getResources(), parent); this.operations_manager = operations_manager; axes_table = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION | SWT.VIRTUAL); final Table table = axes_table.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); createColumns(table_layout); axes_table.setContentProvider(this); createContextMenu(); }
From source file:org.csstudio.trends.databrowser2.propsheet.TraceTableHandler.java
License:Open Source License
/** Create table columns: Auto-sizable, with label provider and editor * @param table_layout//ww w. java 2 s . co m * @param operations_manager * @param table_viewer */ public void createColumns(final TableColumnLayout table_layout, final UndoableActionManager operations_manager, final TableViewer table_viewer) { color_registry = new LocalResourceManager(JFaceResources.getResources(), table_viewer.getTable()); final Shell shell = table_viewer.getTable().getShell(); // Visible Column ---------- TableViewerColumn view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceVisibility, 45, 1); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setImage(item.isVisible() ? Activator.getDefault().getImage(Activator.ICON_CHECKED) : Activator.getDefault().getImage(Activator.ICON_UNCHECKED)); } @Override public String getToolTipText(Object element) { return Messages.TraceVisibilityTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { final int v1 = item1.isVisible() ? 1 : 0; final int v2 = item2.isVisible() ? 1 : 0; final int cmp = v1 - v2; if (cmp != 0) return cmp; return item1.getName().compareTo(item2.getName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; return new CheckboxCellEditor(((TableViewer) getViewer()).getTable()); } @Override protected Object getValue(final Object element) { return ((ModelItem) element).isVisible(); } @Override protected void setValue(final Object element, final Object value) { final ModelItem item = (ModelItem) element; final boolean visible = ((Boolean) value).booleanValue(); if (!visible && !store.getBoolean(Preferences.ALLOW_HIDE_TRACE)) { MessageDialogWithToggle md = MessageDialogWithToggle.openOkCancelConfirm(shell, Messages.HideTraceWarning, Messages.HideTraceWarningDetail, Messages.DoNotShowAgain, false, null, null); if (md.getToggleState()) store.setValue(Preferences.ALLOW_HIDE_TRACE, true); if (md.getReturnCode() != MessageDialog.OK) return; } new ChangeVisibilityCommand(operations_manager, item, visible); editing = false; } }); // Trace PV/Formula Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.ItemName, 70, 70); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getName()); } @Override public String getToolTipText(Object element) { return Messages.ItemNameTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { return item1.getName().compareTo(item2.getName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return ((ModelItem) element).getName(); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { final String new_name = value.toString().trim(); final ModelItem item = (ModelItem) element; if (new_name.equals(item.getName())) return; new ChangeNameCommand(shell, operations_manager, item, new_name); editing = false; } }); // Display Name Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceDisplayName, 70, 70); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getDisplayName()); } @Override public String getToolTipText(Object element) { return Messages.TraceDisplayNameTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { return item1.getDisplayName().compareTo(item2.getDisplayName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return ((ModelItem) element).getDisplayName(); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { final String new_name = value.toString().trim(); final ModelItem item = (ModelItem) element; if (new_name.equals(item.getDisplayName())) return; new ChangeDisplayNameCommand(operations_manager, item, new_name); editing = false; } }); // Color Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.Color, 40, 10); view_col.setLabelProvider(new ColorCellLabelProvider<ModelItem>() { @Override protected Color getColor(ModelItem item) { return color_registry.createColor(item.getColor()); } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; return new RGBCellEditor(table_viewer.getTable()); } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getColor(); } @Override protected void setValue(final Object element, final Object value) { new ChangeColorCommand(operations_manager, (ModelItem) element, (RGB) value); editing = false; } }); // Selected sample time stamp and value view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.CursorTimestamp, 150, 30); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); final Optional<PlotDataItem<Instant>> sample = item.getSelectedSample(); if (sample.isPresent()) cell.setText(TimeHelper.format(sample.get().getPosition())); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(Object element) { return Messages.CursorTimestampTT; } }); view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.CursorValue, 40, 30); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); final Optional<PlotDataItem<Instant>> sample = item.getSelectedSample(); if (sample.isPresent()) { final PlotSample plot_sample = (PlotSample) sample.get(); String text = DefaultVTypeFormat.get().format(plot_sample.getVType()); final String units = item.getUnits(); if (units != null) text += " " + units; //$NON-NLS-1$ cell.setText(text); } else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(Object element) { return Messages.CursorValueTT; } }); // Scan Period Column (only applies to PVItems) ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.ScanPeriod, 70, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); if (item instanceof PVItem) cell.setText(Double.toString(((PVItem) item).getScanPeriod())); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(final Object element) { if (!(element instanceof PVItem)) return null; return Messages.ScanPeriodTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected boolean canEdit(Object element) { return element instanceof PVItem; } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected Object getValue(final Object element) { if (element instanceof PVItem) return Double.toString(((PVItem) element).getScanPeriod()); else return Messages.NotApplicable; } @Override protected void setValue(final Object element, final Object value) { if (!(element instanceof PVItem)) return; final PVItem pv = (PVItem) element; try { final double period = Double.parseDouble(value.toString().trim()); if (period != pv.getScanPeriod()) new ChangeSamplePeriodCommand(shell, operations_manager, pv, period); editing = false; } catch (NumberFormatException ex) { // Display will revert to original value return; } } }); // Buffer size Column (only applies to PVItems) ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.LiveSampleBufferSize, 70, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); if (item instanceof PVItem) cell.setText(Integer.toString(((PVItem) item).getLiveCapacity())); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(final Object element) { if (!(element instanceof PVItem)) return null; final PVItem pv = (PVItem) element; return NLS.bind(Messages.LiveBufferSizeInfoFmt, pv.getLiveCapacity(), new RelativeTime(pv.getLiveCapacity()).toString()); } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected boolean canEdit(Object element) { return element instanceof PVItem; } @Override protected Object getValue(final Object element) { if (element instanceof PVItem) return Integer.toString(((PVItem) element).getLiveCapacity()); else return Messages.NotApplicable; } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { if (!(element instanceof PVItem)) return; final PVItem pv = (PVItem) element; try { final int size = Integer.parseInt(value.toString().trim()); if (size != pv.getLiveCapacity()) new ChangeLiveCapacityCommand(shell, operations_manager, pv, size); editing = false; } catch (NumberFormatException ex) { // Display will revert to original value return; } } }); // Axis Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.Axis, 60, 30); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getAxis().getName()); } @Override public String getToolTipText(Object element) { return Messages.AxisTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { final int cmp = item1.getAxis().getName().compareTo(item2.getAxis().getName()); if (cmp != 0) return cmp; return item1.getDisplayName().compareTo(item2.getDisplayName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { // Thread-safe copy of model axes as this editor is invoked final List<AxisConfig> axes = new ArrayList<>(); @Override protected CellEditor getCellEditor(final Object element) { editing = true; final List<String> axis_names = new ArrayList<>(); axes.clear(); for (AxisConfig axis : model.getAxes()) { axes.add(axis); axis_names.add(axis.getName()); } final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), axis_names.toArray(new String[axis_names.size()]), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return model.getAxisIndex(((ModelItem) element).getAxis()); } @Override protected void setValue(final Object element, final Object value) { final int axis_index = ((Integer) value).intValue(); final AxisConfig axis = axes.get(axis_index); final ModelItem item = (ModelItem) element; if (axis != item.getAxis()) new ChangeAxisCommand(operations_manager, item, axis); editing = false; } }); // Trace Type Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceType, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getTraceType().toString()); } @Override public String getToolTipText(Object element) { return Messages.TraceTypeTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), TraceType.getDisplayNames(), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getTraceType().ordinal(); } @Override protected void setValue(final Object element, final Object value) { final TraceType trace_type = TraceType.fromOrdinal(((Integer) value).intValue()); final ModelItem item = (ModelItem) element; if (trace_type != item.getTraceType()) new ChangeTraceTypeCommand(operations_manager, item, trace_type); editing = false; } }); // Line Width Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceLineWidth, 40, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(Integer.toString(item.getLineWidth())); } @Override public String getToolTipText(Object element) { return Messages.TraceLineWidthTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return Integer.toString(((ModelItem) element).getLineWidth()); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { int width; try { width = Integer.parseInt(value.toString().trim()); } catch (NumberFormatException ex) { width = 0; } final ModelItem item = (ModelItem) element; if (width != item.getLineWidth()) new ChangeLineWidthCommand(operations_manager, item, width); editing = false; } }); // Point Type Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.PointType, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getPointType().toString()); } @Override public String getToolTipText(Object element) { return Messages.PointTypeTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), PointType.getDisplayNames(), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getPointType().ordinal(); } @Override protected void setValue(final Object element, final Object value) { final PointType point_type = PointType.fromOrdinal(((Integer) value).intValue()); final ModelItem item = (ModelItem) element; if (point_type != item.getPointType()) new ChangePointTypeCommand(operations_manager, item, point_type); editing = false; } }); // Point Size Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.PointSize, 40, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(Integer.toString(item.getPointSize())); } @Override public String getToolTipText(Object element) { return Messages.PointSizeTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return Integer.toString(((ModelItem) element).getPointSize()); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { int size; try { size = Integer.parseInt(value.toString().trim()); } catch (NumberFormatException ex) { size = 0; } final ModelItem item = (ModelItem) element; if (size != item.getPointSize()) new ChangePointSizeCommand(operations_manager, item, size); editing = false; } }); // Request Type Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.RequestType, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); if (item instanceof PVItem) cell.setText(((PVItem) item).getRequestType().toString()); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(Object element) { return Messages.RequestTypeTT; } }); // Edit as boolean: Raw == false, Optimized == true view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected boolean canEdit(final Object element) { return element instanceof PVItem; } @Override protected CellEditor getCellEditor(final Object element) { editing = true; return new CheckboxCellEditor(((TableViewer) getViewer()).getTable()); } @Override protected Object getValue(final Object element) { return ((PVItem) element).getRequestType() == RequestType.OPTIMIZED; } @Override protected void setValue(final Object element, final Object value) { final PVItem item = (PVItem) element; final RequestType request_type = ((Boolean) value).booleanValue() ? RequestType.OPTIMIZED : RequestType.RAW; if (request_type == RequestType.RAW && !store.getBoolean(Preferences.ALLOW_REQUEST_RAW)) { MessageDialogWithToggle md = MessageDialogWithToggle.openOkCancelConfirm(shell, Messages.RequestTypeWarning, Messages.RequestTypeWarningDetail, Messages.DoNotShowAgain, false, null, null); if (md.getToggleState()) store.setValue(Preferences.ALLOW_REQUEST_RAW, true); if (md.getReturnCode() == MessageDialog.OK) return; } new ChangeRequestTypeCommand(operations_manager, item, request_type); editing = false; } }); // Waveform Index Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.WaveformIndexCol, 40, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(Integer.toString(item.getWaveformIndex())); } @Override public String getToolTipText(Object element) { return Messages.WaveformIndexColTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return Integer.toString(((ModelItem) element).getWaveformIndex()); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { int index; try { index = Integer.parseInt(value.toString().trim()); if (index < 0) return; final ModelItem item = (ModelItem) element; if (index != item.getWaveformIndex()) new ChangeWaveformIndexCommand(operations_manager, item, index); } catch (NumberFormatException ex) { return; } finally { editing = false; } } }); ColumnViewerToolTipSupport.enableFor(table_viewer); }
From source file:org.csstudio.trends.databrowser3.propsheet.TraceTableHandler.java
License:Open Source License
/** Create table columns: Auto-sizable, with label provider and editor * @param table_layout/*from www. j av a2s .c om*/ * @param operations_manager * @param table_viewer */ public void createColumns(final TableColumnLayout table_layout, final UndoableActionManager operations_manager, final TableViewer table_viewer) { color_registry = new LocalResourceManager(JFaceResources.getResources(), table_viewer.getTable()); final Shell shell = table_viewer.getTable().getShell(); // Visible Column ---------- TableViewerColumn view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceVisibility, 45, 1); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setImage(item.isVisible() ? Activator.getDefault().getImage(Activator.ICON_CHECKED) : Activator.getDefault().getImage(Activator.ICON_UNCHECKED)); } @Override public String getToolTipText(Object element) { return Messages.TraceVisibilityTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { final int v1 = item1.isVisible() ? 1 : 0; final int v2 = item2.isVisible() ? 1 : 0; final int cmp = v1 - v2; if (cmp != 0) return cmp; return item1.getName().compareTo(item2.getName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; return new CheckboxCellEditor(((TableViewer) getViewer()).getTable()); } @Override protected Object getValue(final Object element) { return ((ModelItem) element).isVisible(); } @Override protected void setValue(final Object element, final Object value) { final ModelItem item = (ModelItem) element; final boolean visible = ((Boolean) value).booleanValue(); if (!visible && prompt_for_not_visible) { if (!MessageDialog.openQuestion(shell, Messages.HideTraceWarning, Messages.HideTraceWarningDetail)) return; prompt_for_not_visible = false; } new ChangeVisibilityCommand(operations_manager, item, visible); editing = false; } }); // Trace PV/Formula Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.ItemName, 70, 70); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getName()); } @Override public String getToolTipText(Object element) { return Messages.ItemNameTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { return item1.getName().compareTo(item2.getName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return ((ModelItem) element).getName(); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { final String new_name = value.toString().trim(); final ModelItem item = (ModelItem) element; if (new_name.equals(item.getName())) return; new ChangeNameCommand(shell, operations_manager, item, new_name); editing = false; } }); // Display Name Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceDisplayName, 70, 70); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getDisplayName()); } @Override public String getToolTipText(Object element) { return Messages.TraceDisplayNameTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { return item1.getDisplayName().compareTo(item2.getDisplayName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return ((ModelItem) element).getDisplayName(); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { final String new_name = value.toString().trim(); final ModelItem item = (ModelItem) element; if (new_name.equals(item.getDisplayName())) return; new ChangeDisplayNameCommand(operations_manager, item, new_name); editing = false; } }); // Color Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.Color, 40, 10); view_col.setLabelProvider(new ColorCellLabelProvider<ModelItem>() { @Override protected Color getColor(ModelItem item) { return color_registry.createColor(SWTMediaPool.getRGB(item.getPaintColor())); } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; return new RGBCellEditor(table_viewer.getTable()); } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getRGBColor(); } @Override protected void setValue(final Object element, final Object value) { new ChangeColorCommand(operations_manager, (ModelItem) element, SWTMediaPool.getJFX((RGB) value)); editing = false; } }); // Selected sample time stamp and value view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.CursorTimestamp, 150, 30); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); final Optional<PlotDataItem<Instant>> sample = item.getSelectedSample(); if (sample.isPresent()) cell.setText(TimeHelper.format(sample.get().getPosition())); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(Object element) { return Messages.CursorTimestampTT; } }); view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.CursorValue, 40, 30); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); final Optional<PlotDataItem<Instant>> sample = item.getSelectedSample(); if (sample.isPresent()) { final PlotSample plot_sample = (PlotSample) sample.get(); String text = DefaultVTypeFormat.get().format(plot_sample.getVType()); final String units = item.getUnits(); if (units != null) text += " " + units; //$NON-NLS-1$ cell.setText(text); } else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(Object element) { return Messages.CursorValueTT; } }); // Scan Period Column (only applies to PVItems) ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.ScanPeriod, 70, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); if (item instanceof PVItem) cell.setText(Double.toString(((PVItem) item).getScanPeriod())); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(final Object element) { if (!(element instanceof PVItem)) return null; return Messages.ScanPeriodTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected boolean canEdit(Object element) { return element instanceof PVItem; } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected Object getValue(final Object element) { if (element instanceof PVItem) return Double.toString(((PVItem) element).getScanPeriod()); else return Messages.NotApplicable; } @Override protected void setValue(final Object element, final Object value) { if (!(element instanceof PVItem)) return; final PVItem pv = (PVItem) element; try { final double period = Double.parseDouble(value.toString().trim()); if (period != pv.getScanPeriod()) new ChangeSamplePeriodCommand(shell, operations_manager, pv, period); editing = false; } catch (NumberFormatException ex) { // Display will revert to original value return; } } }); // Buffer size Column (only applies to PVItems) ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.LiveSampleBufferSize, 70, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); if (item instanceof PVItem) cell.setText(Integer.toString(((PVItem) item).getLiveCapacity())); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(final Object element) { if (!(element instanceof PVItem)) return null; final PVItem pv = (PVItem) element; return NLS.bind(Messages.LiveBufferSizeInfoFmt, pv.getLiveCapacity(), new RelativeTime(pv.getLiveCapacity()).toString()); } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected boolean canEdit(Object element) { return element instanceof PVItem; } @Override protected Object getValue(final Object element) { if (element instanceof PVItem) return Integer.toString(((PVItem) element).getLiveCapacity()); else return Messages.NotApplicable; } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { if (!(element instanceof PVItem)) return; final PVItem pv = (PVItem) element; try { final int size = Integer.parseInt(value.toString().trim()); if (size != pv.getLiveCapacity()) new ChangeLiveCapacityCommand(shell, operations_manager, pv, size); editing = false; } catch (NumberFormatException ex) { // Display will revert to original value return; } } }); // Axis Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.Axis, 60, 30); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getAxis().getName()); } @Override public String getToolTipText(Object element) { return Messages.AxisTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { final int cmp = item1.getAxis().getName().compareTo(item2.getAxis().getName()); if (cmp != 0) return cmp; return item1.getDisplayName().compareTo(item2.getDisplayName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { // Thread-safe copy of model axes as this editor is invoked final List<AxisConfig> axes = new ArrayList<>(); @Override protected CellEditor getCellEditor(final Object element) { editing = true; final List<String> axis_names = new ArrayList<>(); axes.clear(); for (AxisConfig axis : model.getAxes()) { axes.add(axis); axis_names.add(axis.getName()); } final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), axis_names.toArray(new String[axis_names.size()]), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return model.getAxisIndex(((ModelItem) element).getAxis()); } @Override protected void setValue(final Object element, final Object value) { final int axis_index = ((Integer) value).intValue(); final AxisConfig axis = axes.get(axis_index); final ModelItem item = (ModelItem) element; if (axis != item.getAxis()) new ChangeAxisCommand(operations_manager, item, axis); editing = false; } }); // Trace Type Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceType, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getTraceType().toString()); } @Override public String getToolTipText(Object element) { return Messages.TraceTypeTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), TraceType.getDisplayNames(), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getTraceType().ordinal(); } @Override protected void setValue(final Object element, final Object value) { final TraceType trace_type = TraceType.values()[(((Integer) value).intValue())]; final ModelItem item = (ModelItem) element; if (trace_type != item.getTraceType()) new ChangeTraceTypeCommand(operations_manager, item, trace_type); editing = false; } }); // Line Width Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceLineWidth, 40, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(Integer.toString(item.getLineWidth())); } @Override public String getToolTipText(Object element) { return Messages.TraceLineWidthTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return Integer.toString(((ModelItem) element).getLineWidth()); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { int width; try { width = Integer.parseInt(value.toString().trim()); } catch (NumberFormatException ex) { width = 0; } final ModelItem item = (ModelItem) element; if (width != item.getLineWidth()) new ChangeLineWidthCommand(operations_manager, item, width); editing = false; } }); // Line Style Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceLineStyle, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getLineStyle().toString()); } @Override public String getToolTipText(Object element) { return Messages.TraceLineStyleTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), LineStyle.getDisplayNames(), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getLineStyle().ordinal(); } @Override protected void setValue(final Object element, final Object value) { final LineStyle line_style = LineStyle.values()[((Integer) value).intValue()]; final ModelItem item = (ModelItem) element; if (line_style != item.getLineStyle()) new ChangeLineStyleCommand(operations_manager, item, line_style); editing = false; } }); // Point Type Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.PointType, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getPointType().toString()); } @Override public String getToolTipText(Object element) { return Messages.PointTypeTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), PointType.getDisplayNames(), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getPointType().ordinal(); } @Override protected void setValue(final Object element, final Object value) { final PointType point_type = PointType.values()[((Integer) value).intValue()]; final ModelItem item = (ModelItem) element; if (point_type != item.getPointType()) new ChangePointTypeCommand(operations_manager, item, point_type); editing = false; } }); // Point Size Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.PointSize, 40, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(Integer.toString(item.getPointSize())); } @Override public String getToolTipText(Object element) { return Messages.PointSizeTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return Integer.toString(((ModelItem) element).getPointSize()); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { int size; try { size = Integer.parseInt(value.toString().trim()); } catch (NumberFormatException ex) { size = 0; } final ModelItem item = (ModelItem) element; if (size != item.getPointSize()) new ChangePointSizeCommand(operations_manager, item, size); editing = false; } }); // Request Type Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.RequestType, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); if (item instanceof PVItem) cell.setText(((PVItem) item).getRequestType().toString()); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(Object element) { return Messages.RequestTypeTT; } }); // Edit as boolean: Raw == false, Optimized == true view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected boolean canEdit(final Object element) { return element instanceof PVItem; } @Override protected CellEditor getCellEditor(final Object element) { editing = true; return new CheckboxCellEditor(((TableViewer) getViewer()).getTable()); } @Override protected Object getValue(final Object element) { return ((PVItem) element).getRequestType() == RequestType.OPTIMIZED; } @Override protected void setValue(final Object element, final Object value) { final PVItem item = (PVItem) element; final RequestType request_type = ((Boolean) value).booleanValue() ? RequestType.OPTIMIZED : RequestType.RAW; if (request_type == RequestType.RAW && prompt_for_raw_data_request) { if (!MessageDialog.openQuestion(shell, Messages.RequestTypeWarning, Messages.RequestTypeWarningDetail)) return; prompt_for_raw_data_request = false; } new ChangeRequestTypeCommand(operations_manager, item, request_type); editing = false; } }); // Waveform Index Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.WaveformIndexCol, 40, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(Integer.toString(item.getWaveformIndex())); } @Override public String getToolTipText(Object element) { return Messages.WaveformIndexColTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return Integer.toString(((ModelItem) element).getWaveformIndex()); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { int index; try { index = Integer.parseInt(value.toString().trim()); if (index < 0) return; final ModelItem item = (ModelItem) element; if (index != item.getWaveformIndex()) new ChangeWaveformIndexCommand(operations_manager, item, index); } catch (NumberFormatException ex) { return; } finally { editing = false; } } }); ColumnViewerToolTipSupport.enableFor(table_viewer); }
From source file:org.eclipse.buildship.ui.external.viewer.FilteredTree.java
License:Open Source License
/** * Create the button that clears the text. * * @param parent parent <code>Composite</code> of toolbar button *///from ww w .ja v a 2s. c o m private void createClearText(Composite parent) { // only create the button if the text widget doesn't support one // natively if ((filterText.getStyle() & SWT.ICON_CANCEL) == 0) { final Label clearButton = new Label(parent, SWT.NONE); ResourceManager resourceManager = new LocalResourceManager(JFaceResources.getResources(), clearButton); final Image inactiveImage = resourceManager .createImage(JFaceResources.getImageRegistry().getDescriptor(DISABLED_CLEAR_ICON)); final Image activeImage = resourceManager .createImage(JFaceResources.getImageRegistry().getDescriptor(CLEAR_ICON)); final Image pressedImage = resourceManager .createImage(JFaceResources.getImageRegistry().getDescriptor(PRESSED_CLEAR_ICON)); clearButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); clearButton.setImage(inactiveImage); clearButton.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND)); clearButton.setToolTipText(ViewerMessages.FilteredTree_ClearToolTip); clearButton.addMouseListener(new MouseAdapter() { private MouseMoveListener fMoveListener; @Override public void mouseDown(MouseEvent e) { clearButton.setImage(pressedImage); fMoveListener = new MouseMoveListener() { private boolean fMouseInButton = true; @Override public void mouseMove(MouseEvent e) { boolean mouseInButton = isMouseInButton(e); if (mouseInButton != fMouseInButton) { fMouseInButton = mouseInButton; clearButton.setImage(mouseInButton ? pressedImage : inactiveImage); } } }; clearButton.addMouseMoveListener(fMoveListener); } @Override public void mouseUp(MouseEvent e) { if (fMoveListener != null) { clearButton.removeMouseMoveListener(fMoveListener); fMoveListener = null; boolean mouseInButton = isMouseInButton(e); clearButton.setImage(mouseInButton ? activeImage : inactiveImage); if (mouseInButton) { clearText(); filterText.setFocus(); } } } private boolean isMouseInButton(MouseEvent e) { Point buttonSize = clearButton.getSize(); return 0 <= e.x && e.x < buttonSize.x && 0 <= e.y && e.y < buttonSize.y; } }); clearButton.addMouseTrackListener(new MouseTrackListener() { @Override public void mouseEnter(MouseEvent e) { clearButton.setImage(activeImage); } @Override public void mouseExit(MouseEvent e) { clearButton.setImage(inactiveImage); } @Override public void mouseHover(MouseEvent e) { } }); clearButton.getAccessible().addAccessibleListener(new AccessibleAdapter() { @Override public void getName(AccessibleEvent e) { e.result = ViewerMessages.FilteredTree_AccessibleListenerClearButton; } }); clearButton.getAccessible().addAccessibleControlListener(new AccessibleControlAdapter() { @Override public void getRole(AccessibleControlEvent e) { e.detail = ACC.ROLE_PUSHBUTTON; } }); this.clearButtonControl = clearButton; } }