package org.eclipse.uml2.diagram.common.draw2d; import org.eclipse.draw2d.PositionConstants; import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; import org.eclipse.swt.graphics.Image; public class StereotypeLabel2 extends WrappingLabel { private boolean myNeverHide; public StereotypeLabel2() { setTextPlacement(PositionConstants.EAST); setIconAlignment(PositionConstants.BOTTOM); setTextAlignment(PositionConstants.BOTTOM); setAlignment(PositionConstants.CENTER); } public boolean hasText() { String text = getText(); return text != null && text.trim().length() > 0; } @Override public boolean hasIcons() { return super.hasIcons(); } @Override public void setText(String text) { super.setText(text); hideIfEmpty(); } @Override public void setIcon(Image image, int index) { super.setIcon(image, index); hideIfEmpty(); } public void setNeverHide(boolean neverHide) { if (myNeverHide == neverHide) { return; } myNeverHide = neverHide; if (!neverHide) { hideIfEmpty(); } } public boolean isNeverHide() { return myNeverHide; } private void hideIfEmpty() { boolean hasSomething = hasText() || hasIcons(); boolean visible = myNeverHide || hasSomething; setVisible(visible); } }