diff options
| -rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/PersonLabel.java | 42 |
1 files changed, 18 insertions, 24 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/PersonLabel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/PersonLabel.java index 02f9a181..8b5b9da5 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/PersonLabel.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/PersonLabel.java @@ -1,12 +1,13 @@ package org.openslx.dozmod.gui.control; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.MouseAdapter; -import org.eclipse.swt.events.MouseEvent; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; +import java.awt.Color; +import java.awt.SystemColor; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; + +import javax.swing.JLabel; + import org.openslx.bwlp.thrift.iface.UserInfo; -import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.helper.SwtUtil; import org.openslx.dozmod.util.FormatHelper; @@ -14,21 +15,21 @@ import org.openslx.dozmod.util.FormatHelper; * A label for displaying a {@link UserInfo} object. Supports a callback event * for when the users clicks the label. */ -public class PersonLabel { - - private final Label label; +public class PersonLabel extends JLabel { private UserInfo user = null; private PersonLabelClickEvent callback = null; - public PersonLabel(Composite parent, int style) { - label = new Label(parent, style); - label.setForeground(Gui.display.getSystemColor(SWT.COLOR_LINK_FOREGROUND)); - label.addMouseListener(new MouseAdapter() { + public PersonLabel() { + // could not find a way to query the system-wide color for hyperlinks :( + setForeground(Color.BLUE.darker()); + addMouseListener(new MouseAdapter() { @Override - public void mouseUp(MouseEvent e) { - if (user != null && callback != null && e.button == 1 && label.getBounds().contains(e.x, e.y)) { + public void mouseClicked(MouseEvent e) { + if (user != null && callback != null + && e.getButton() == MouseEvent.BUTTON1 + && getBounds().contains(e.getX(), e.getY())) { callback.clicked(user); } } @@ -46,21 +47,14 @@ public class PersonLabel { } /** - * Set layout data of this label. - */ - public void setLayoutData(Object layoutData) { - label.setLayoutData(layoutData); - } - - /** * Set the user to display. */ public void setUser(UserInfo user) { this.user = user; if (user == null) { - label.setText(""); + setText(""); } else { - label.setText(SwtUtil.replaceMnemonics(FormatHelper.userName(user))); + setText(SwtUtil.replaceMnemonics(FormatHelper.userName(user))); } } |
