use of com.sencha.gxt.widget.core.client.menu.Menu in project activityinfo by bedatadriven.
the class MeasurePane method showMenu.
private void showMenu(Element element, MeasureListItem item) {
MeasureModel measure = item.getModel();
Menu contextMenu = new Menu();
// Edit the alias
MenuItem editLabel = new MenuItem();
editLabel.setText("Edit Label...");
editLabel.addSelectionHandler(event -> editLabel(measure));
contextMenu.add(editLabel);
// Edit the formula...
MenuItem editFormula = new MenuItem();
editFormula.setText("Edit Formula...");
editFormula.addSelectionHandler(event -> editFormula(measure));
contextMenu.add(editFormula);
contextMenu.add(new SeparatorMenuItem());
// Choose the aggregation
for (Statistic statistic : Statistic.values()) {
CheckMenuItem aggregationItem = new CheckMenuItem(statistic.getLabel());
aggregationItem.setChecked(measure.getStatistics().contains(statistic));
aggregationItem.addCheckChangeHandler(event -> updateStatistic(measure, statistic, event.getChecked()));
contextMenu.add(aggregationItem);
}
contextMenu.add(new SeparatorMenuItem());
// Remove the dimension
MenuItem remove = new MenuItem();
remove.setText(I18N.CONSTANTS.remove());
remove.addSelectionHandler(event -> removeMeasure(measure.getId()));
contextMenu.add(remove);
contextMenu.show(element, new Style.AnchorAlignment(Style.Anchor.BOTTOM, Style.Anchor.BOTTOM, true));
}
use of com.sencha.gxt.widget.core.client.menu.Menu in project activityinfo by bedatadriven.
the class DimensionPane method onDimensionMenu.
private void onDimensionMenu(Element element, EffectiveDimension dim) {
Menu contextMenu = new Menu();
MenuItem editLabel = new MenuItem();
editLabel.setText("Edit Label...");
editLabel.addSelectionHandler(event -> editLabel(dim.getModel()));
contextMenu.add(editLabel);
contextMenu.add(new SeparatorMenuItem());
// Allow choosing the date part to show
if (dim.isDate()) {
DateLevel currentLevel = dim.getModel().getDateLevel().orElse(null);
for (DateLevel dateLevel : DateLevel.values()) {
CheckMenuItem item = new CheckMenuItem(dateLevel.getLabel());
item.setChecked(currentLevel == dateLevel);
item.addSelectionHandler(event -> updateDateLevel(dim, dateLevel));
contextMenu.add(item);
}
contextMenu.add(new SeparatorMenuItem());
}
boolean canTotal = canTotal(dim);
// Choose to include totals or not.
CheckMenuItem totalsItem = new CheckMenuItem("Include Totals");
totalsItem.setChecked(dim.getModel().getTotals());
totalsItem.addCheckChangeHandler(event -> updateTotals(dim, event.getChecked()));
totalsItem.setEnabled(canTotal);
contextMenu.add(totalsItem);
CheckMenuItem missingItem = new CheckMenuItem("Include Missing");
missingItem.setChecked(dim.getModel().getMissingIncluded());
missingItem.addCheckChangeHandler(event -> updateMissing(dim, event.getChecked()));
missingItem.setEnabled(canTotal);
contextMenu.add(missingItem);
CheckMenuItem percentagesItem = new CheckMenuItem("Include Percentages");
percentagesItem.setChecked(dim.getModel().getPercentage());
percentagesItem.addCheckChangeHandler(event -> updatePercentages(dim, event.getChecked()));
percentagesItem.setEnabled(canTotal);
contextMenu.add(percentagesItem);
MenuItem totalsLabel = new MenuItem("Total Label...");
totalsLabel.addSelectionHandler(event -> editTotalLabel(dim));
totalsLabel.setEnabled(canTotal);
contextMenu.add(totalsLabel);
contextMenu.add(new SeparatorMenuItem());
// Remove the dimension
MenuItem remove = new MenuItem();
remove.setText(I18N.CONSTANTS.remove());
remove.addSelectionHandler(event -> removeDimension(dim.getId()));
// Special handling for "Measures" and "Statistics" dimension
if (dim.getId().equals(DimensionModel.MEASURE_ID)) {
if (viewModel.getWorkingModel().getMeasures().size() > 1) {
remove.setEnabled(false);
}
}
if (dim.getId().equals(DimensionModel.STATISTIC_ID)) {
if (viewModel.getWorkingModel().isMeasureDefinedWithMultipleStatistics()) {
remove.setEnabled(false);
}
}
contextMenu.add(remove);
contextMenu.show(element, new Style.AnchorAlignment(Style.Anchor.BOTTOM, Style.Anchor.BOTTOM, true));
}
use of com.sencha.gxt.widget.core.client.menu.Menu in project activityinfo by bedatadriven.
the class LogicalTabPanel method onItemContextMenu.
protected void onItemContextMenu(final M item, int x, int y) {
if (closeMenu) {
if (closeContextMenu == null) {
closeContextMenu = new Menu();
closeContextMenu.addHideHandler(new HideHandler() {
@Override
public void onHide(HideEvent event) {
contextMenuItem = null;
}
});
closeContextMenu.add(new MenuItem(getMessages().closeTab(), new SelectionHandler<MenuItem>() {
@Override
public void onSelection(SelectionEvent<MenuItem> event) {
close(contextMenuItem);
}
}));
closeContextMenu.add(new MenuItem(getMessages().closeOtherTabs(), new SelectionHandler<MenuItem>() {
@Override
public void onSelection(SelectionEvent<MenuItem> event) {
List<M> models = new ArrayList<M>();
for (int i = 0, len = getModelCount(); i < len; i++) {
models.add(getModel(i));
}
for (M w : models) {
TabItemConfig config = getConfig(w);
if (w != contextMenuItem && config.isClosable()) {
close(w);
}
}
}
}));
}
TabItemConfig c = configMap.get(item);
MenuItem mi = (MenuItem) closeContextMenu.getWidget(0);
mi.setEnabled(c.isClosable());
contextMenuItem = item;
boolean hasClosable = false;
for (int i = 0, len = getModelCount(); i < len; i++) {
Widget item2 = container.getWidget(i);
TabItemConfig config = configMap.get(item2);
if (config.isClosable() && item2 != item) {
hasClosable = true;
break;
}
}
MenuItem m = (MenuItem) closeContextMenu.getWidget(1);
m.setEnabled(hasClosable);
closeContextMenu.showAt(x, y);
}
}
use of com.sencha.gxt.widget.core.client.menu.Menu in project activityinfo by bedatadriven.
the class LiveRecordGridView method createContextMenu.
/**
* Creates a context menu for the given column, including sort menu items and column visibility sub-menu.
*
* @param colIndex the column index
* @return the context menu for the given column
*/
protected Menu createContextMenu(final int colIndex) {
final Menu menu = new Menu();
if (SORTING_IMPLEMENTED && cm.isSortable(colIndex)) {
MenuItem item = new MenuItem();
item.setText(DefaultMessages.getMessages().gridView_sortAscText());
item.setIcon(header.getAppearance().sortAscendingIcon());
item.addSelectionHandler(new SelectionHandler<Item>() {
@Override
public void onSelection(SelectionEvent<Item> event) {
doSort(colIndex, SortDir.ASC);
}
});
menu.add(item);
item = new MenuItem();
item.setText(DefaultMessages.getMessages().gridView_sortDescText());
item.setIcon(header.getAppearance().sortDescendingIcon());
item.addSelectionHandler(new SelectionHandler<Item>() {
@Override
public void onSelection(SelectionEvent<Item> event) {
doSort(colIndex, SortDir.DESC);
}
});
menu.add(item);
}
return menu;
}
Aggregations