package name.abuchen.portfolio.ui.views.dashboard; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.dialogs.InputDialog; import org.eclipse.swt.widgets.Display; import name.abuchen.portfolio.ui.Messages; import name.abuchen.portfolio.ui.util.LabelOnly; import name.abuchen.portfolio.ui.util.SimpleAction; public class LabelConfig implements WidgetConfig { private final WidgetDelegate delegate; public LabelConfig(WidgetDelegate delegate) { this.delegate = delegate; } @Override public void menuAboutToShow(IMenuManager manager) { manager.appendToGroup(DashboardView.INFO_MENU_GROUP_NAME, new LabelOnly(delegate.getWidget().getLabel())); manager.add(new SimpleAction(Messages.MenuRenameLabel, a -> { InputDialog dialog = new InputDialog(Display.getCurrent().getActiveShell(), Messages.MenuRenameLabel, Messages.ColumnLable, delegate.getWidget().getLabel(), null); if (dialog.open() != InputDialog.OK) return; delegate.getWidget().setLabel(dialog.getValue()); delegate.getClient().markDirty(); })); } @Override public String getLabel() { return Messages.ColumnLable + ": " + delegate.getWidget().getLabel(); //$NON-NLS-1$ } }