sclass BetterLabel extends JLabel {
bool autoToolTip = true;
*() {
// Listeners given out to componentPopupMenu must not directly
// reference the outer object (-> weak map problem).
final WeakReference<BetterLabel> me = new(this);
componentPopupMenu(this, BetterLabel_menuItems(me));
}
*(S text) {
this();
this.setText(text);
}
public void setText(S text) {
super.setText(text);
if (autoToolTip)
if (!swic(text, "<html>")) // HTML labels make super-huge, confusing tool tips
setToolTipText(nullIfEmpty(text));
}
}
// moved outside of class for GC reasons (see above)
static VF1<JPopupMenu> BetterLabel_menuItems(final WeakReference<BetterLabel> me) {
ret voidfunc(JPopupMenu menu) {
addMenuItem(menu, "Copy text to clipboard", r {
copyTextToClipboard(me->getText());
});
};
}download show line numbers debug dex old transpilations
Travelled to 18 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mowyntqkapby, mqqgnosmbjvj, onxytkatvevr, ppjhyzlbdabe, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt, xrpafgyirdlv
No comments. add comment
| Snippet ID: | #1011150 |
| Snippet name: | BetterLabel - JLabel with automatic tooltip and popup menu |
| Eternal ID of this version: | #1011150/12 |
| Text MD5: | 7e8b63d2ea1bcf79fcd2d395ddb27799 |
| Author: | stefan |
| Category: | javax / gui |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2018-06-28 16:41:21 |
| Source code size: | 894 bytes / 31 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 1130 / 5501 |
| Version history: | 11 change(s) |
| Referenced in: | [show references] |