List of usage examples for com.vaadin.event ShortcutListener ShortcutListener
public ShortcutListener(String caption, int keyCode, int... modifierKeys)
From source file:com.cms.utils.ConfirmWindown.java
public ConfirmWindown(String caption, String question, String yes, String no) { setCaption(caption);//w ww . j a v a 2 s .c om btnYes.setCaption(yes); btnYes.focus(); btnNo.setCaption(no); setModal(true); center(); buttonsLayout.addComponent(btnYes); buttonsLayout.setComponentAlignment(btnYes, Alignment.MIDDLE_CENTER); buttonsLayout.addComponent(btnNo); buttonsLayout.setComponentAlignment(btnNo, Alignment.MIDDLE_CENTER); layout.addComponent(new Label(question)); layout.addComponent(buttonsLayout); setContent(layout); layout.setMargin(true); buttonsLayout.setMargin(true); buttonsLayout.setWidth("100%"); setWidth("300px"); setHeight("160px"); setResizable(false); btnYes.addClickListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { decision.yes(event); close(); } }); btnNo.addClickListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { decision.no(event); close(); } }); addShortcutListener(new ShortcutListener("Close", ShortcutAction.KeyCode.ESCAPE, null) { @Override public void handleAction(Object sender, Object target) { close(); } }); UI.getCurrent().addWindow(this); }
From source file:com.esofthead.mycollab.vaadin.web.ui.SearchTextField.java
License:Open Source License
public SearchTextField() { this.setDefaultComponentAlignment(Alignment.MIDDLE_RIGHT); ELabel icon = ELabel.fontIcon(FontAwesome.SEARCH); innerField = new TextField(); innerField.setImmediate(true);/*from w ww . j a v a2 s . c om*/ innerField.setInputPrompt("Search"); innerField.setWidth("180px"); this.with(icon, innerField).withStyleName("searchfield"); ShortcutListener shortcutListener = new ShortcutListener("searchfield", ShortcutAction.KeyCode.ENTER, null) { @Override public void handleAction(Object sender, Object target) { String value = ((TextField) target).getValue(); if (isNotBlank(value)) { doSearch(value); } else { emptySearch(); } } }; ShortcutExtension.installShortcutAction(innerField, shortcutListener); }
From source file:com.haulmont.cuba.web.app.folders.CubaFoldersPane.java
License:Apache License
protected Component createAppFoldersPane() { List<AppFolder> appFolders = foldersService.loadAppFolders(); if (appFolders.isEmpty()) return null; appFoldersTree = new CubaTree(); appFoldersTree.setCubaId("appFoldersTree"); appFoldersTree.setSelectable(true);//from ww w. j av a 2s . co m appFoldersTree.setItemStyleGenerator(new FolderTreeStyleProvider()); appFoldersTree.addShortcutListener( new ShortcutListener("applyAppFolder", ShortcutAction.KeyCode.ENTER, (int[]) null) { @Override public void handleAction(Object sender, Object target) { if (target == appFoldersTree) { AbstractSearchFolder folder = (AbstractSearchFolder) appFoldersTree.getValue(); if (folder != null) { openFolder(folder); } } } }); appFoldersTree.addExpandListener(new Tree.ExpandListener() { @Override public void nodeExpand(Tree.ExpandEvent event) { AppFolder folder = (AppFolder) event.getItemId(); if (StringUtils.isBlank(folder.getQuantityScript())) { folder.setQuantity(null); folder.setItemStyle(null); setFolderTreeItemCaption(appFoldersTree, folder); } } }); appFoldersTree.addCollapseListener(new Tree.CollapseListener() { @Override public void nodeCollapse(Tree.CollapseEvent event) { AppFolder folder = (AppFolder) event.getItemId(); if (StringUtils.isBlank(folder.getQuantityScript())) { reloadSingleParentFolder(folder, null); setFolderTreeItemCaption(appFoldersTree, folder); } } }); appFoldersRoot = messages.getMainMessage("folders.appFoldersRoot"); fillTree(appFoldersTree, appFolders, isNeedRootAppFolder() ? appFoldersRoot : null); appFoldersTree.addItemClickListener(new FolderClickListener()); appFoldersTree.addActionHandler(new AppFolderActionsHandler()); for (Object itemId : appFoldersTree.rootItemIds()) { appFoldersTree.expandItemsRecursively(itemId); } return appFoldersTree; }
From source file:com.haulmont.cuba.web.app.folders.CubaFoldersPane.java
License:Apache License
protected Component createSearchFoldersPane() { searchFoldersTree = new CubaTree(); searchFoldersTree.setCubaId("searchFoldersTree"); searchFoldersTree.setSelectable(true); searchFoldersTree.setItemStyleGenerator(new FolderTreeStyleProvider()); searchFoldersTree.addShortcutListener( new ShortcutListener("applySearchFolder", ShortcutAction.KeyCode.ENTER, (int[]) null) { @Override/*ww w .j a va 2 s. c o m*/ public void handleAction(Object sender, Object target) { if (target == searchFoldersTree) { AbstractSearchFolder folder = (AbstractSearchFolder) searchFoldersTree.getValue(); if (folder != null) { openFolder(folder); } } } }); List<SearchFolder> searchFolders = foldersService.loadSearchFolders(); searchFoldersRoot = messages.getMainMessage("folders.searchFoldersRoot"); searchFoldersTree.addItemClickListener(new FolderClickListener()); searchFoldersTree.addActionHandler(new SearchFolderActionsHandler()); if (!searchFolders.isEmpty()) { fillTree(searchFoldersTree, searchFolders, isNeedRootSearchFolder() ? searchFoldersRoot : null); } for (Object itemId : searchFoldersTree.rootItemIds()) { searchFoldersTree.expandItemsRecursively(itemId); } return searchFoldersTree; }
From source file:com.haulmont.cuba.web.app.folders.FolderEditWindow.java
License:Apache License
public FolderEditWindow(boolean adding, Folder folder, Presentations presentations, Runnable commitHandler) { this.folder = folder; this.commitHandler = commitHandler; messages = AppBeans.get(Messages.NAME); messagesPack = AppConfig.getMessagesPack(); userSessionSource = AppBeans.get(UserSessionSource.NAME); Configuration configuration = AppBeans.get(Configuration.NAME); clientConfig = configuration.getConfig(ClientConfig.class); setCaption(adding ? getMessage("folders.folderEditWindow.adding") : getMessage("folders.folderEditWindow")); ThemeConstants theme = App.getInstance().getThemeConstants(); setWidthUndefined();/*w w w . j a v a2 s .com*/ setResizable(false); int[] modifiers = { ShortcutAction.ModifierKey.CTRL }; addAction(new ShortcutListener("commit", com.vaadin.event.ShortcutAction.KeyCode.ENTER, modifiers) { @Override public void handleAction(Object sender, Object target) { commit(); } }); layout = new VerticalLayout(); layout.setWidthUndefined(); layout.setSpacing(true); setContent(layout); setModal(true); center(); String fieldWidth = theme.get("cuba.web.FolderEditWindow.field.width"); nameField = new TextField(); nameField.setRequired(true); nameField.setCaption(getMessage("folders.folderEditWindow.nameField")); nameField.setWidth(fieldWidth); nameField.setValue(folder.getName()); nameField.focus(); layout.addComponent(nameField); tabNameField = new TextField(); tabNameField.setCaption(getMessage("folders.folderEditWindow.tabNameField")); tabNameField.setWidth(fieldWidth); tabNameField.setValue(StringUtils.trimToEmpty(folder.getTabName())); layout.addComponent(tabNameField); parentSelect = new ComboBox(); parentSelect.setCaption(getMessage("folders.folderEditWindow.parentSelect")); parentSelect.setWidth(fieldWidth); parentSelect.setNullSelectionAllowed(true); fillParentSelect(); parentSelect.setValue(folder.getParent()); layout.addComponent(parentSelect); if (folder instanceof SearchFolder) { if (presentations != null) { presentation = new ComboBox(); presentation.setCaption(getMessage("folders.folderEditWindow.presentation")); presentation.setWidth(fieldWidth); presentation.setNullSelectionAllowed(true); fillPresentations(presentations); presentation.setValue(((SearchFolder) folder).getPresentation()); layout.addComponent(presentation); } else if (((SearchFolder) folder).getPresentation() != null) { selectedPresentationField = new TextField(); selectedPresentationField.setWidth(fieldWidth); selectedPresentationField.setCaption(getMessage("folders.folderEditWindow.presentation")); selectedPresentationField.setValue(((SearchFolder) folder).getPresentation().getName()); selectedPresentationField.setEnabled(false); layout.addComponent(selectedPresentationField); } } sortOrderField = new TextField(); sortOrderField.setCaption(getMessage("folders.folderEditWindow.sortOrder")); sortOrderField.setWidth(fieldWidth); sortOrderField.setValue(folder.getSortOrder() == null ? "" : folder.getSortOrder().toString()); layout.addComponent(sortOrderField); if (userSessionSource.getUserSession().isSpecificPermitted("cuba.gui.searchFolder.global") && folder instanceof SearchFolder && BooleanUtils.isNotTrue(((SearchFolder) folder).getIsSet())) { globalCb = new CubaCheckBox(getMessage("folders.folderEditWindow.global")); globalCb.setValue(((SearchFolder) folder).getUser() == null); layout.addComponent(globalCb); } applyDefaultCb = new CubaCheckBox(getMessage("folders.folderEditWindow.applyDefault")); applyDefaultCb.setValue(BooleanUtils.isTrue(((AbstractSearchFolder) folder).getApplyDefault())); applyDefaultCb.setVisible(clientConfig.getGenericFilterManualApplyRequired() && folder instanceof SearchFolder && BooleanUtils.isNotTrue(((SearchFolder) folder).getIsSet())); layout.addComponent(applyDefaultCb); HorizontalLayout buttonsLayout = new HorizontalLayout(); buttonsLayout.setMargin(new MarginInfo(true, false, false, false)); buttonsLayout.setSpacing(true); layout.addComponent(buttonsLayout); okBtn = new CubaButton(getMessage("actions.Ok")); okBtn.setIcon(WebComponentsHelper.getIcon("icons/ok.png")); okBtn.addStyleName(WebButton.ICON_STYLE); initButtonOkListener(); buttonsLayout.addComponent(okBtn); cancelBtn = new CubaButton(getMessage("actions.Cancel")); cancelBtn.setIcon(WebComponentsHelper.getIcon("icons/cancel.png")); cancelBtn.addStyleName(WebButton.ICON_STYLE); cancelBtn.addClickListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { close(); } }); buttonsLayout.addComponent(cancelBtn); if (AppUI.getCurrent().isTestMode()) { setCubaId("folderEditWindow"); nameField.setCubaId("nameField"); tabNameField.setCubaId("tabNameField"); parentSelect.setCubaId("parentSelect"); if (presentation != null) { presentation.setCubaId("presentationSelect"); } sortOrderField.setCubaId("sortOrderField"); if (selectedPresentationField != null) { selectedPresentationField.setCubaId("selectedPresentationField"); } if (globalCb != null) { globalCb.setCubaId("globalCb"); } applyDefaultCb.setCubaId("applyDefaultCb"); okBtn.setCubaId("okBtn"); cancelBtn.setCubaId("cancelBtn"); } }
From source file:com.haulmont.cuba.web.app.ui.serverlogviewer.ServerLogWindow.java
License:Apache License
@Override public void init(Map<String, Object> params) { localJmxField.setValue(jmxControlAPI.getLocalNodeName()); localJmxField.setEditable(false);//w w w . jav a 2s.c o m localJmxInstance = jmxControlAPI.getLocalInstance(); jmxInstancesDs.refresh(); jmxConnectionField.setValue(localJmxInstance); jmxConnectionField.setRequired(true); jmxConnectionField.addValueChangeListener(e -> { JmxInstance jmxInstance = (JmxInstance) e.getValue(); try { refreshHostInfo(); } catch (JmxControlException ex) { showNotification(getMessage("exception.unableToConnectToInterface"), NotificationType.WARNING); if (jmxInstance != localJmxInstance) { jmxConnectionField.setValue(localJmxInstance); } } }); autoRefreshCheck.addValueChangeListener(e -> { if (Boolean.TRUE.equals(e.getValue())) { updateLogTailTimer.start(); } else { updateLogTailTimer.stop(); } }); jmxConnectionField.removeAllActions(); LookupAction action = LookupAction.create(jmxConnectionField); action.setAfterLookupCloseHandler((window, actionId) -> { jmxInstancesDs.refresh(); }); jmxConnectionField.addAction(action); jmxConnectionField .addAction(new BaseAction("actions.Add").withIcon("icons/plus-btn.png").withHandler(event -> { JmxInstanceEditor instanceEditor = (JmxInstanceEditor) openEditor( metadata.create(JmxInstance.class), OpenType.DIALOG); instanceEditor.addCloseListener(actionId -> { if (COMMIT_ACTION_ID.equals(actionId)) { jmxInstancesDs.refresh(); jmxConnectionField.setValue(instanceEditor.getItem()); } }); })); logTailLabel.setSizeAuto(); logTailLabel.setHtmlEnabled(true); logTailLabel.setStyleName("c-log-content"); loggerLevelField.setOptionsList(LoggingHelper.getLevels()); appenderLevelField.setOptionsList(LoggingHelper.getLevels()); refreshHostInfo(); loggerNameField.addValueChangeListener(e -> { List<String> currentLoggers = new ArrayList<>( jmxRemoteLoggingAPI.getLoggerNames(getSelectedConnection())); Collections.sort(currentLoggers); currentLoggers.add(0, getMessage("logger.new")); if (e.getValue() != null && e.getValue().equals(currentLoggers.get(0))) { openAddLoggerDialog(); } }); downloadButton.setEnabled(security.isSpecificPermitted("cuba.gui.administration.downloadlogs")); ComboBox comboBox = logFileNameField.unwrap(ComboBox.class); comboBox.addShortcutListener( new ShortcutListener("", KeyCode.D, new int[] { ModifierKey.CTRL, ModifierKey.SHIFT }) { @Override public void handleAction(Object sender, Object target) { downloadLog(); } }); comboBox.addShortcutListener( new ShortcutListener("", KeyCode.S, new int[] { ModifierKey.CTRL, ModifierKey.SHIFT }) { @Override public void handleAction(Object sender, Object target) { showLogTail(); } }); downloadButton.setDescription("CTRL-SHIFT-D"); showTailButton.setDescription("CTRL-SHIFT-S"); }
From source file:com.haulmont.cuba.web.gui.components.mainwindow.WebFtsField.java
License:Apache License
public WebFtsField() { component = new CssLayout(); component.setPrimaryStyleName(FTS_FIELD_STYLENAME); ComponentsFactory cf = AppBeans.get(ComponentsFactory.NAME); com.haulmont.cuba.gui.components.TextField searchFieldComponent = cf .createComponent(com.haulmont.cuba.gui.components.TextField.class); searchField = (TextField) WebComponentsHelper.unwrap(searchFieldComponent); searchField.setStyleName("c-ftsfield-text"); AppUI ui = AppUI.getCurrent();/*from w ww . j a v a 2 s.c om*/ if (ui.isTestMode()) { searchField.setCubaId("ftsField"); searchField.setId(ui.getTestIdManager().reserveId("ftsField")); } searchField.addShortcutListener( new ShortcutListener("fts", com.vaadin.event.ShortcutAction.KeyCode.ENTER, null) { @Override public void handleAction(Object sender, Object target) { openSearchWindow(); } }); searchBtn = new CubaButton(); searchBtn.setStyleName("c-ftsfield-button"); searchBtn.setIcon(WebComponentsHelper.getIcon("app/images/fts-button.png")); searchBtn.addClickListener((Button.ClickListener) event -> openSearchWindow()); component.addComponent(searchField); component.addComponent(searchBtn); adjustHeight(); adjustWidth(); }
From source file:com.haulmont.cuba.web.gui.components.WebAbstractActionsHolderComponent.java
License:Apache License
protected WebAbstractActionsHolderComponent() { Configuration configuration = AppBeans.get(Configuration.NAME); ClientConfig clientConfig = configuration.getConfig(ClientConfig.class); showIconsForPopupMenuActions = clientConfig.getShowIconsForPopupMenuActions(); contextMenuPopup = new VerticalLayout(); contextMenuPopup.setCubaId("cubaContextMenu"); contextMenuPopup.setSizeUndefined(); contextMenuPopup.setStyleName("c-cm-container"); shortcutsDelegate = new ShortcutsDelegate<ShortcutListener>() { @Override/*from w w w .j a v a 2 s. c om*/ protected ShortcutListener attachShortcut(final String actionId, KeyCombination keyCombination) { ShortcutListener shortcut = new ShortcutListener(actionId, keyCombination.getKey().getCode(), KeyCombination.Modifier.codes(keyCombination.getModifiers())) { @Override public void handleAction(Object sender, Object target) { if (target == component) { Action action = getAction(actionId); if (action != null && action.isEnabled() && action.isVisible()) { action.actionPerform(WebAbstractActionsHolderComponent.this); } } } }; component.addShortcutListener(shortcut); return shortcut; } @Override protected void detachShortcut(Action action, ShortcutListener shortcutDescriptor) { component.removeShortcutListener(shortcutDescriptor); } @Override protected Collection<Action> getActions() { return WebAbstractActionsHolderComponent.this.getActions(); } }; }
From source file:com.haulmont.cuba.web.gui.components.WebAbstractTable.java
License:Apache License
protected void initComponent(final T component) { component.setMultiSelect(false);/*from ww w . j a v a2 s . co m*/ component.setImmediate(true); component.setValidationVisible(false); component.setShowBufferedSourceException(false); component.setBeforePaintListener(() -> { com.vaadin.ui.Table.CellStyleGenerator generator = component.getCellStyleGenerator(); if (generator instanceof WebAbstractTable.StyleGeneratorAdapter) { //noinspection unchecked ((StyleGeneratorAdapter) generator).resetExceptionHandledFlag(); } }); Messages messages = AppBeans.get(Messages.NAME); component.setSortAscendingLabel(messages.getMainMessage("tableSort.ascending")); component.setSortResetLabel(messages.getMainMessage("tableSort.reset")); component.setSortDescendingLabel(messages.getMainMessage("tableSort.descending")); setClientCaching(component); int defaultRowHeaderWidth = 16; ThemeConstants theme = App.getInstance().getThemeConstants(); if (theme != null) { defaultRowHeaderWidth = theme.getInt("cuba.web.Table.defaultRowHeaderWidth"); } // CAUTION: vaadin considers null as row header property id; component.setColumnWidth(null, defaultRowHeaderWidth); // todo get width from theme contextMenuPopup.setParent(component); component.setContextMenuPopup(contextMenuPopup); shortcutsDelegate.setAllowEnterShortcut(false); component.addValueChangeListener(event -> { if (datasource == null) { return; } final Set<? extends Entity> selected = getSelected(); if (selected.isEmpty()) { Entity dsItem = datasource.getItemIfValid(); datasource.setItem(null); if (dsItem == null) { // in this case item change event will not be generated refreshActionsState(); } } else { // reset selection and select new item if (isMultiSelect()) { datasource.setItem(null); } Entity newItem = selected.iterator().next(); Entity dsItem = datasource.getItemIfValid(); datasource.setItem(newItem); if (Objects.equals(dsItem, newItem)) { // in this case item change event will not be generated refreshActionsState(); } } LookupSelectionChangeEvent selectionChangeEvent = new LookupSelectionChangeEvent(this); getEventRouter().fireEvent(LookupSelectionChangeListener.class, LookupSelectionChangeListener::lookupValueChanged, selectionChangeEvent); }); component.addShortcutListener( new ShortcutListener("tableEnter", com.vaadin.event.ShortcutAction.KeyCode.ENTER, null) { @Override public void handleAction(Object sender, Object target) { if (target == WebAbstractTable.this.component) { if (enterPressAction != null) { enterPressAction.actionPerform(WebAbstractTable.this); } else { handleClickAction(); } } } }); component.addItemClickListener(event -> { if (event.isDoubleClick() && event.getItem() != null) { handleClickAction(); } }); component.setSelectable(true); component.setTableFieldFactory(createFieldFactory()); component.setColumnCollapsingAllowed(true); component.setColumnReorderingAllowed(true); setEditable(false); componentComposition = new TableComposition(); componentComposition.setTable(component); componentComposition.setPrimaryStyleName("c-table-composition"); componentComposition.addComponent(component); component.setCellStyleGenerator(createStyleGenerator()); component.addColumnCollapseListener(this::handleColumnCollapsed); // force default sizes componentComposition.setHeightUndefined(); componentComposition.setWidthUndefined(); }
From source file:com.haulmont.cuba.web.gui.components.WebAbstractTree.java
License:Apache License
public void initComponent(CubaTree component) { componentComposition = new CssLayout(); componentComposition.setPrimaryStyleName("c-tree-composition"); componentComposition.setWidthUndefined(); componentComposition.addComponent(component); component.setSizeFull();/*from w w w. ja v a 2 s. co m*/ component.addShortcutListener( new ShortcutListener("tableEnter", com.vaadin.event.ShortcutAction.KeyCode.ENTER, null) { @Override public void handleAction(Object sender, Object target) { if (target == WebAbstractTree.this.component) { if (enterPressAction != null) { enterPressAction.actionPerform(WebAbstractTree.this); } else { handleClickAction(); } } } }); }