private boolean waitForPendingDecoration(ViewerCell cell) { if (this.decorator == null) return false; Object element = cell.getElement(); String oldText = cell.getText(); boolean isDecorationPending = false; if (this.decorator instanceof LabelDecorator) { isDecorationPending = !((LabelDecorator) this.decorator) .prepareDecoration(element, oldText, getDecorationContext()); } else if (this.decorator instanceof IDelayedLabelDecorator) { isDecorationPending = !((IDelayedLabelDecorator) this.decorator) .prepareDecoration(element, oldText); } if (isDecorationPending && oldText.length() == 0) { // item is empty: is shown for the first time: don't wait return false; } return isDecorationPending; }
private boolean waitForPendingDecoration(ViewerCell cell) { if (this.decorator == null) return false; Object element = cell.getElement(); String oldText = cell.getText(); boolean isDecorationPending = false; if (this.decorator instanceof LabelDecorator) { isDecorationPending = !((LabelDecorator) this.decorator) .prepareDecoration(element, oldText, getDecorationContext()); } else if (this.decorator instanceof IDelayedLabelDecorator) { isDecorationPending = !((IDelayedLabelDecorator) this.decorator) .prepareDecoration(element, oldText); } if (isDecorationPending && oldText.length() == 0) { // item is empty: is shown for the first time: don't wait return false; } return isDecorationPending; }
@Override public void getName(AccessibleEvent event) { ViewerCell cell = getFocusCell(); if (cell == null) return; ViewerRow row = cell.getViewerRow(); if (row == null) return; ViewerColumn viewPart = viewer.getViewerColumn(cell .getColumnIndex()); if (viewPart == null) return; CellLabelProvider labelProvider = viewPart .getLabelProvider(); if (labelProvider == null) return; labelProvider.update(cell); event.result = cell.getText(); } });
@Override public void getName(AccessibleEvent event) { ViewerCell cell = getFocusCell(); if (cell == null) return; ViewerRow row = cell.getViewerRow(); if (row == null) return; ViewerColumn viewPart = viewer.getViewerColumn(cell .getColumnIndex()); if (viewPart == null) return; CellLabelProvider labelProvider = viewPart .getLabelProvider(); if (labelProvider == null) return; labelProvider.update(cell); event.result = cell.getText(); } });
IValidable model = (IValidable) cell.getElement(); if (!ControllerRegistry.getCurrentViolations().getViolations(model.getModelId(), propertyName).isEmpty()) { if (cell.getText().isEmpty()) { cell.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED)); cell.setImage(FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_ERROR).getImage()); } else { if (styleRanges[0].length < cell.getText().length()) { styleRanges[0].length = cell.getText().length();
@Override public void update(ViewerCell cell) { Object element = cell.getElement(); if (element instanceof WorkbenchPartReference) { WorkbenchPartReference ref = (WorkbenchPartReference) element; String text = getWorkbenchPartReferenceText(ref); cell.setText(text); cell.setImage(ref.getTitleImage()); // get the model to define the style MPart model = ref.getModel(); // build the style range StyleRange style = new StyleRange(); style.start = 0; style.length = cell.getText().length(); // if hidden use the bold font, if active italic style.font = getFont(isHiddenEditor(model), isActiveEditor(model)); cell.setStyleRanges(new StyleRange[] { style }); } }
@Override public void update(ViewerCell cell) { Object element = cell.getElement(); StyledString styledString = getStyledText(element); String newText= styledString.toString(); StyleRange[] oldStyleRanges= cell.getStyleRanges(); StyleRange[] newStyleRanges= isOwnerDrawEnabled() ? styledString.getStyleRanges() : null; if (!Arrays.equals(oldStyleRanges, newStyleRanges)) { cell.setStyleRanges(newStyleRanges); if (cell.getText().equals(newText)) { // make sure there will be a refresh from a change cell.setText(""); //$NON-NLS-1$ } } cell.setText(newText); cell.setImage(getImage(element)); cell.setFont(getFont(element)); cell.setForeground(getForeground(element)); cell.setBackground(getBackground(element)); // no super call required. changes on item will trigger the refresh. }
@Override public void update(ViewerCell cell) { Object element = cell.getElement(); StyledString styledString = getStyledText(element); String newText= styledString.toString(); StyleRange[] oldStyleRanges= cell.getStyleRanges(); StyleRange[] newStyleRanges= isOwnerDrawEnabled() ? styledString.getStyleRanges() : null; if (!Arrays.equals(oldStyleRanges, newStyleRanges)) { cell.setStyleRanges(newStyleRanges); if (cell.getText().equals(newText)) { // make sure there will be a refresh from a change cell.setText(""); //$NON-NLS-1$ } } cell.setText(newText); cell.setImage(getImage(element)); cell.setFont(getFont(element)); cell.setForeground(getForeground(element)); cell.setBackground(getBackground(element)); // no super call required. changes on item will trigger the refresh. }
if (cell.getText().equals(newText)) {
/** * @param layout * @param cell * @param applyColors * @return the text width delta (0 if the text layout contains no other font) */ private int updateTextLayout(TextLayout layout, ViewerCell cell, boolean applyColors) { layout.setStyle(null, 0, Integer.MAX_VALUE); // clear old styles layout.setText(cell.getText()); layout.setFont(cell.getFont()); // set also if null to clear previous usages int originalTextWidth = layout.getBounds().width; // text width without any styles boolean containsOtherFont= false; StyleRange[] styleRanges = cell.getStyleRanges(); if (styleRanges != null) { // user didn't fill styled ranges for (int i = 0; i < styleRanges.length; i++) { StyleRange curr = prepareStyleRange(styleRanges[i], applyColors); layout.setStyle(curr, curr.start, curr.start + curr.length - 1); if (curr.font != null) { containsOtherFont= true; } } } int textWidthDelta = 0; if (containsOtherFont) { textWidthDelta = layout.getBounds().width - originalTextWidth; } return textWidthDelta; }
/** * @param layout * @param cell * @param applyColors * @return the text width delta (0 if the text layout contains no other font) */ private int updateTextLayout(TextLayout layout, ViewerCell cell, boolean applyColors) { layout.setStyle(null, 0, Integer.MAX_VALUE); // clear old styles layout.setText(cell.getText()); layout.setFont(cell.getFont()); // set also if null to clear previous usages int originalTextWidth = layout.getBounds().width; // text width without any styles boolean containsOtherFont= false; StyleRange[] styleRanges = cell.getStyleRanges(); if (styleRanges != null) { // user didn't fill styled ranges for (StyleRange styleRange : styleRanges) { StyleRange curr = prepareStyleRange(styleRange, applyColors); layout.setStyle(curr, curr.start, curr.start + curr.length - 1); if (curr.font != null) { containsOtherFont= true; } } } int textWidthDelta = 0; if (containsOtherFont) { textWidthDelta = layout.getBounds().width - originalTextWidth; } return textWidthDelta; }
@Override protected void doUpdateItem(Widget widget, Object element, boolean fullMap) { if (widget instanceof BreadcrumbItem) { final BreadcrumbItem item= (BreadcrumbItem) widget; // remember element we are showing if (fullMap) { associate(element, item); } else { Object data= item.getData(); if (data != null) { unmapElement(data, item); } item.setData(element); mapElement(element, item); } BreadcrumbViewerRow row= new BreadcrumbViewerRow(this, item); ViewerCell cell= row.getCell(0); ((CellLabelProvider) getLabelProvider()).update(cell); item.refreshArrow(); if (fToolTipLabelProvider != null) { item.setToolTip(fToolTipLabelProvider.getText(item.getData())); } else { item.setToolTip(cell.getText()); } } }
@Override protected void doUpdateItem(Widget widget, Object element, boolean fullMap) { if (widget instanceof BreadcrumbItem) { final BreadcrumbItem item= (BreadcrumbItem) widget; // remember element we are showing if (fullMap) { associate(element, item); } else { Object data= item.getData(); if (data != null) { unmapElement(data, item); } item.setData(element); mapElement(element, item); } BreadcrumbViewerRow row= new BreadcrumbViewerRow(this, item); ViewerCell cell= row.getCell(0); ((CellLabelProvider) getLabelProvider()).update(cell); item.refreshArrow(); if (fToolTipLabelProvider != null) { item.setToolTip(fToolTipLabelProvider.getText(item.getData())); } else { item.setToolTip(cell.getText()); } } }
ViewerLabel label = new ViewerLabel(cell.getText(), cell.getImage());
ViewerLabel label = new ViewerLabel(cell.getText(), cell.getImage());
ViewerLabel label = new ViewerLabel(cell.getText(), cell.getImage());