PL-8425 Replace usages of ContextMenu addon with Vaadin ContextMenu addon

This commit is contained in:
Gleb Gorelov 2017-01-16 19:09:57 +04:00
parent bd2511344d
commit 64da32e371
11 changed files with 81 additions and 66 deletions

View File

@ -472,8 +472,8 @@ configure(webModule) {
/* Vaadin addons */
compile(bom['com.haulmont.thirdparty:popupbutton'])
compile(bom['org.vaadin.addons:aceeditor'])
compile(bom['org.vaadin.addons:contextmenu'])
compile(bom['org.vaadin.addons:dragdroplayouts'])
compile(bom['com.vaadin.addon:vaadin-context-menu'])
provided(bom['org.apache.tomcat:tomcat-servlet-api'])

View File

@ -22,8 +22,8 @@
<!-- Add-ons -->
<inherits name="org.vaadin.aceeditor.AceEditorWidgetSet"/>
<inherits name="org.vaadin.hene.popupbutton.widgetset.PopupbuttonWidgetset"/>
<inherits name="org.vaadin.peter.contextmenu.ContextmenuWidgetset"/>
<inherits name="fi.jasoft.dragdroplayouts.DragDropLayoutsWidgetSet"/>
<inherits name="com.vaadin.addon.contextmenu.WidgetSet"/>
<replace-with class="com.haulmont.cuba.web.toolkit.ui.client.tooltip.CubaTooltip">
<when-type-is class="com.vaadin.client.VTooltip"/>

View File

@ -79,4 +79,13 @@ public class CubaMenuBarWidget extends VMenuBar {
}
return itemHTML.toString();
}
@Override
protected void showChildMenuAt(CustomMenuItem item, int top, int left) {
super.showChildMenuAt(item, top, left);
if (popup != null) {
popup.addStyleName("c-main-menu-popup");
}
}
}

View File

@ -32,9 +32,11 @@ import com.haulmont.cuba.gui.components.mainwindow.FtsField;
import com.haulmont.cuba.web.WebConfig;
import com.haulmont.cuba.web.gui.components.WebComponentsHelper;
import com.haulmont.cuba.web.toolkit.ui.CubaHorizontalSplitPanel;
import com.vaadin.addon.contextmenu.ContextMenu;
import com.vaadin.addon.contextmenu.MenuItem;
import com.vaadin.server.Sizeable.Unit;
import com.vaadin.ui.AbstractComponent;
import org.apache.commons.lang.StringUtils;
import org.vaadin.peter.contextmenu.ContextMenu;
import javax.inject.Inject;
import java.util.List;
@ -82,11 +84,9 @@ public class AppMainWindow extends AbstractMainWindow {
ClientConfig clientConfig = configuration.getConfig(ClientConfig.class);
if (clientConfig.getLayoutAnalyzerEnabled()) {
ContextMenu contextMenu = new ContextMenu();
contextMenu.setOpenAutomatically(true);
ContextMenu contextMenu = new ContextMenu(titleBar.unwrap(AbstractComponent.class), false);
contextMenu.setAsContextMenuOf(logoImage.unwrap(com.vaadin.ui.AbstractComponent.class));
ContextMenu.ContextMenuItem analyzeLayout = contextMenu.addItem(messages.getMainMessage("actions.analyzeLayout"));
analyzeLayout.addItemClickListener(event -> {
MenuItem menuItem = contextMenu.addItem(messages.getMainMessage("actions.analyzeLayout"), c -> {
LayoutAnalyzer analyzer = new LayoutAnalyzer();
List<LayoutTip> tipsList = analyzer.analyze(this);
@ -96,6 +96,7 @@ public class AppMainWindow extends AbstractMainWindow {
openWindow("layoutAnalyzer", OpenType.DIALOG, ParamsMap.of("tipsList", tipsList));
}
});
menuItem.setStyleName("c-cm-item");
}
if (webConfig.getUseInverseHeader()) {

View File

@ -50,7 +50,7 @@
}
}
.v-menubar-submenu {
.c-main-menu.v-menubar-submenu {
display: table;
overflow: hidden;
white-space: nowrap;
@ -139,7 +139,7 @@
}
}
.v-menubar-submenu-has-icons .v-menubar-menuitem {
.c-main-menu.v-menubar-submenu-has-icons .v-menubar-menuitem {
.v-icon {
margin-left: -$v-font-size--h1;
margin-right: 0;

View File

@ -58,26 +58,14 @@
}
}
// styles for context-menu add-on
@mixin halo-contextmenu-addon($primary-stylename: v-context-menu) {
.#{$primary-stylename}-container {
@include valo-selection-overlay-style;
@mixin halo-vaadin-contextmenu-addon($primary-stylename: c-cm-item) {
.v-menubar-submenu .#{$primary-stylename}.v-menubar-menuitem {
padding-right: $v-selection-item-padding-horizontal*2;
padding-left: $v-selection-item-padding-horizontal;
}
.#{$primary-stylename}-item-basic {
@include box-defaults;
@include valo-button-borderless-style;
@include valo-selection-item-style;
height: $v-selection-item-height;
cursor: pointer;
text-decoration: none;
text-align: left;
&:focus {
@include valo-selection-item-selected-style;
}
outline: 0;
.#{$primary-stylename}.v-menubar-menuitem-selected:active {
@include opacity(.7);
}
}

View File

@ -124,7 +124,7 @@
@include halo-richtextarea;
@include halo-orderedlayout;
@include halo-sourcecodeeditor;
@include halo-contextmenu-addon;
@include halo-vaadin-contextmenu-addon;
@include halo-textarea;
@include halo-draganddrop;
@include halo-colorpicker;

View File

@ -0,0 +1,38 @@
/*!
* Copyright (c) 2008-2017 Haulmont.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
@mixin cuba-menubar {
.c-main-menu-popup.v-menubar-popup {
box-shadow: 0 2px 6px 0 rgba(0,0,0,0.5);
}
.c-main-menu.v-menubar-submenu {
background: $cuba-app-header-background-color;
border: solid 2px $cuba-app-menu-highlight-color;
padding: 5px;
}
.c-main-menu.v-menubar-submenu-has-icons .v-menubar-menuitem {
.v-icon {
margin-left: -19px;
width: 16px;
}
.v-menubar-menuitem-caption {
padding-left: 20px;
}
}
}

View File

@ -169,17 +169,6 @@
}
}
.v-menubar-submenu-has-icons .v-menubar-menuitem {
.v-icon {
margin-left: -19px;
width: 16px;
}
.v-menubar-menuitem-caption {
padding-left: 20px;
}
}
// Padding for main tabsheet content
.c-splitpanel-dockable-right > div > div.v-splitpanel-second-container .c-app-tabbed-window.v-margin-left,

View File

@ -119,38 +119,26 @@
}
}
// styles for context-menu add-on
@mixin havana-contextmenu-addon($primary-stylename: v-context-menu) {
.#{$primary-stylename}-container {
font-family: $cuba-havana-fonts;
font-size: 0;
color: $cuba-contextmenu-font-color;
@mixin havana-vaadin-contextmenu-addon($primary-stylename: c-cm-item) {
.v-menubar-popup {
box-shadow: none;
}
.v-menubar-submenu {
background: $cuba-contextmenu-background-color;
border: 1px solid $cuba-field-focused-border-color;
.popupContent {
padding: 3px;
}
.#{$primary-stylename}.v-menubar-menuitem .v-menubar-menuitem-caption {
text-shadow: none;
color: $cuba-contextmenu-font-color;
padding: 2px 8px;
border-left-width: 0;
}
.#{$primary-stylename}-item-basic {
@include box-defaults;
cursor: pointer;
font-size: 12px;
border: 1px solid transparent;
padding: 3px 7px;
&:focus {
outline: 0;
.#{$primary-stylename}.v-menubar-menuitem-selected .v-menubar-menuitem-caption {
background: $cuba-field-selection-color;
color: white;
color: #fff;
}
}
.#{$primary-stylename}-item-basic-text {
@include box-defaults;
}
}

View File

@ -82,6 +82,7 @@
// Application specific
@import "app/app-window";
@import "app/app-menu";
@import "app/login-window";
@import "app/logger-level";
@import "app/breadcrumbs";
@ -138,7 +139,7 @@
@include havana-loadingindicator;
@include havana-sourcecodeeditor;
@include havana-progressindicator;
@include havana-contextmenu-addon;
@include havana-vaadin-contextmenu-addon;
@include havana-draganddrop;
@include havana-scrollbox;
@include havana-calendar;
@ -161,6 +162,7 @@
@include havana-cuba-fileupload-wrapper;
@include cuba-login-window;
@include cuba-menubar;
@include cuba-application-window;
@include cuba-logger-level;
@include cuba-generic-filter;