[Bug #802] Rearranged context menu and added vertical separators

FEA: ItEr74S04BugFixing
This commit is contained in:
Lorenzo Tilve Álvaro 2011-05-06 16:36:15 +02:00
parent 04bb4a2ad2
commit ceedf53da0
2 changed files with 56 additions and 20 deletions

View file

@ -35,6 +35,7 @@ import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.OpenEvent;
import org.zkoss.zul.Menuitem;
import org.zkoss.zul.Menupopup;
import org.zkoss.zul.Menuseparator;
import org.zkoss.zul.impl.api.XulElement;
public class MenuBuilder<T extends XulElement> {
@ -121,16 +122,20 @@ public class MenuBuilder<T extends XulElement> {
}
});
for (final Item item : items) {
Menuitem menuItem = item.createMenuItem();
menuItem.addEventListener("onClick", new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
ItemAction<T> action = item.action;
action.onEvent(referenced, event);
}
});
result.appendChild(menuItem);
if (!item.name.equals("separator")) {
Menuitem menuItem = item.createMenuItem();
menuItem.addEventListener("onClick", new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
ItemAction<T> action = item.action;
action.onEvent(referenced, event);
}
});
result.appendChild(menuItem);
} else {
Menuseparator separator = new Menuseparator();
result.appendChild(separator);
}
}
insertInRootComponent(result);
if (setContext) {

View file

@ -130,6 +130,8 @@ import org.zkoss.ganttz.adapters.PlannerConfiguration.IPrintAction;
import org.zkoss.ganttz.adapters.PlannerConfiguration.IReloadChartListener;
import org.zkoss.ganttz.data.GanttDiagramGraph.IGraphChangeListener;
import org.zkoss.ganttz.extensions.ICommand;
import org.zkoss.ganttz.extensions.ICommandOnTask;
import org.zkoss.ganttz.extensions.IContextWithPlannerTask;
import org.zkoss.ganttz.timetracker.TimeTracker;
import org.zkoss.ganttz.timetracker.zoom.DetailItem;
import org.zkoss.ganttz.timetracker.zoom.IDetailItemModificator;
@ -326,6 +328,31 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
}
}
private static class NullSeparatorCommandOnTask<T> implements
ICommandOnTask<T> {
@Override
public String getName() {
return "separator";
}
@Override
public String getIcon() {
return null;
}
@Override
public boolean isApplicableTo(T task) {
return true;
}
@Override
public void doAction(IContextWithPlannerTask<T> context, T task) {
// Do nothing
}
}
@Override
@Transactional(readOnly = true)
public void setConfigurationToPlanner(final Planner planner, Order order,
@ -354,23 +381,27 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
configuration.addGlobalCommand(buildReassigningCommand());
final IResourceAllocationCommand resourceAllocationCommand =
buildResourceAllocationCommand(editTaskController);
configuration.addCommandOnTask(resourceAllocationCommand);
NullSeparatorCommandOnTask<TaskElement> separator = new NullSeparatorCommandOnTask<TaskElement>();
final IResourceAllocationCommand resourceAllocationCommand = buildResourceAllocationCommand(editTaskController);
final IAdvanceAssignmentPlanningCommand advanceAssignmentPlanningCommand = buildAdvanceAssignmentPlanningCommand(advanceAssignmentPlanningController);
// Build context menu
configuration.addCommandOnTask(buildMilestoneCommand());
configuration.addCommandOnTask(buildDeleteMilestoneCommand());
configuration
.addCommandOnTask(buildCalendarAllocationCommand(calendarAllocationController));
configuration.addCommandOnTask(separator);
configuration
.addCommandOnTask(buildTaskPropertiesCommand(editTaskController));
final IAdvanceAssignmentPlanningCommand advanceAssignmentPlanningCommand =
buildAdvanceAssignmentPlanningCommand(advanceAssignmentPlanningController);
configuration.addCommandOnTask(resourceAllocationCommand);
configuration
.addCommandOnTask(buildSubcontractCommand(editTaskController));
configuration
.addCommandOnTask(buildCalendarAllocationCommand(calendarAllocationController));
configuration.addCommandOnTask(separator);
configuration.addCommandOnTask(advanceAssignmentPlanningCommand);
configuration
.addCommandOnTask(buildAdvanceConsolidationCommand(advanceConsolidationController));
configuration
.addCommandOnTask(buildSubcontractCommand(editTaskController));
configuration.setDoubleClickCommand(resourceAllocationCommand);
addPrintSupport(configuration, order);