package kr.co.apexsoft.stella.modeler.explorer.provider; import java.util.Arrays; import kr.co.apexsoft.stella.modeler.explorer.core.ApexDIWrapper; import org.eclipse.core.resources.IFile; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.StyledString; import org.eclipse.jface.viewers.ViewerCell; import org.eclipse.papyrus.infra.onefile.utils.OneFileUtils; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.graphics.Point; import org.eclipse.ui.internal.navigator.NavigatorDecoratingLabelProvider; public class ApexDecoratingLabelProviderWTooltips extends NavigatorDecoratingLabelProvider { private ApexUMLLabelProvider apexLabelProvider; public ApexDecoratingLabelProviderWTooltips(ILabelProvider commonLabelProvider) { super(commonLabelProvider); if(commonLabelProvider instanceof ApexUMLLabelProvider) { apexLabelProvider = (ApexUMLLabelProvider)commonLabelProvider; } } @Override public String getToolTipText(Object element) { return apexLabelProvider.getMarkerMessage(element); } @Override public Point getToolTipShift(Object object) { return new Point(5, 5); } @Override public int getToolTipDisplayDelayTime(Object object) { return 1000; } @Override public int getToolTipTimeDisplayed(Object object) { return 10000; } /** * apex updated */ @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)); } }