Skip to content

Commit

Permalink
Making possible setting ConnectorResource resources as icons (#104)
Browse files Browse the repository at this point in the history
* Making possible setting ConnectorResource resources as icons

Fixes #17

* Update example

* Instantiate VerticalLayout inside init method
  • Loading branch information
Anastasia Smirnova authored and juhopiirainen committed Sep 18, 2019
1 parent 0fac483 commit c836b16
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import com.vaadin.event.ContextClickEvent.ContextClickListener;
import com.vaadin.event.ContextClickEvent.ContextClickNotifier;
import com.vaadin.server.AbstractExtension;
import com.vaadin.server.ConnectorResource;
import com.vaadin.server.Extension;
import com.vaadin.server.Resource;
import com.vaadin.server.ResourceReference;
Expand Down Expand Up @@ -170,8 +171,12 @@ private List<ContextMenuItemState> convertItemsToState(List<MenuItem> items,
.getDescriptionContentMode();
menuItemState.enabled = item.isEnabled();
menuItemState.separator = item.isSeparator();
menuItemState.icon = ResourceReference.create(item.getIcon(), this,
"");
String key="icon";
ResourceReference resourceReference = ResourceReference.create(item.getIcon(), this, key);
if (item.getIcon()!=null && (item.getIcon() instanceof ConnectorResource)) {
super.getState().resources.put(key,resourceReference);
}
menuItemState.icon = resourceReference;
menuItemState.styleName = item.getStyleName();

menuItemState.childItems = convertItemsToState(item.getChildren(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
import com.vaadin.server.BrowserWindowOpener;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.server.ClassResource;
import com.vaadin.server.ThemeResource;
import com.vaadin.ui.Button;
import com.vaadin.ui.MenuBar.MenuItem;
import com.vaadin.ui.Notification;
Expand Down Expand Up @@ -69,7 +71,9 @@ private void addTree(VerticalLayout layout) {
TreeContextMenu<String> treeContextMenu = new TreeContextMenu<>(tree);
treeContextMenu.addTreeContextMenuListener(e -> {
treeContextMenu.removeItems();
treeContextMenu.addItem("Who?", menuItem -> Notification.show(e.getItem()));
//The path is /resources/images/kitten.jpg
ClassResource ico = new ClassResource("/images/kitten.jpg");
treeContextMenu.addItem("Who?",ico, menuItem -> Notification.show(e.getItem()));
});

layout.addComponent(tree);
Expand All @@ -95,19 +99,24 @@ private void fillMenu(ContextMenu menu) {

menu.addSeparator();

MenuItem item4 = menu.addItem("Icon + Description + <b>HTML</b>",
//The path is /resources/images/kitten.jpg
ClassResource ico = new ClassResource("/images/kitten.jpg");
MenuItem item4 = menu.addItem("Icon + Description + <b>HTML</b>",ico,
e -> Notification.show("icon")
);
item4.setIcon(VaadinIcons.ADJUST);
item4.setDescription("Test tooltip");
but3.addClickListener(e -> item4.setDescription(""));
MenuItem item5 = menu.addItem("Custom stylename",
e -> Notification.show("stylename")
);
//The path is /webapp/VAADIN/themes/contextmenu/images
ThemeResource resource = new ThemeResource("images/cat.jpg");
item5.setIcon(resource);

item5.setStyleName("teststyle");

MenuItem item6 = menu.addItem("Submenu");
item6.addItem("Subitem", e -> Notification.show("SubItem"));
item6.addItem("Subitem", VaadinIcons.OPTION, e -> Notification.show("SubItem"));
item6.addSeparator();
item6.addItem("Subitem", e -> Notification.show("SubItem"))
.setDescription("Test");
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit c836b16

Please sign in to comment.