Skip to content

Commit

Permalink
Upgrade to Vaadin 8.4 (fixes #7) (#8)
Browse files Browse the repository at this point in the history
  • Loading branch information
mcollovati authored May 16, 2018
1 parent 04d2312 commit 5d6cc0d
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 151 deletions.
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,15 @@ and setting the location after a server side state change has been triggered.

Enhanced Window Opener requires a widgetset ricompilation in order to be used in a Vaadin project; Java 8 is also required.

## Compatibility Matrix

| Enhanced Window Opener Version | Vaadin Version |
| ------------------------------ | -------------- |
| 0.4| 8.4 |
| 0.3| [ 8.0.x, 8.3.x ] |
| 0.2| [ 8.0.x, 8.3.x ] |
| 0.1| 7.x |


## Online demo

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

import com.vaadin.server.AbstractClientConnector;
import com.vaadin.server.BrowserWindowOpener;
import com.vaadin.server.EventTrigger;
import com.vaadin.server.Resource;
import com.vaadin.server.StreamResource;
import com.vaadin.ui.AbstractComponent;
Expand Down Expand Up @@ -196,6 +197,18 @@ public EnhancedBrowserWindowOpener doExtend(AbstractClientConnector target) {
return this;
}

/**
* Add this extension to the {@code EventTrigger}.
*
* @param eventTrigger the trigger to attach this extension to
* @return current object for further customization
*
* @since 0.4
*/
public EnhancedBrowserWindowOpener doExtend(EventTrigger eventTrigger) {
this.extend(eventTrigger);
return this;
}

// Fluent sugar

Expand All @@ -205,10 +218,11 @@ public EnhancedBrowserWindowOpener doExtend(AbstractClientConnector target) {
* @param menuBar The menu bar to extend
* @param menuItem The menu item that should trigger the open operation
* @return current object for further customization
* @deprecated since 0.4; from Vaadin 8.4 {@link com.vaadin.ui.MenuBar.MenuItem} could be extended directly
*/
@Deprecated
public EnhancedBrowserWindowOpener doExtend(MenuBar menuBar, MenuBar.MenuItem menuItem) {
this.extend(menuBar);
getState().menuItem = menuItem.getId();
this.extend(menuItem);
return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,10 @@
import java.util.Map;

import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.http.client.URL;
import com.vaadin.client.ServerConnector;
import com.vaadin.client.VConsole;
import com.vaadin.client.annotations.OnStateChange;
import com.vaadin.client.extensions.BrowserWindowOpenerConnector;
import com.vaadin.client.ui.VMenuBar;
import com.vaadin.client.ui.menubar.MenuBarConnector;
import com.vaadin.shared.ui.BrowserWindowOpenerState;
import com.vaadin.shared.ui.Connect;
import com.vaadin.shared.util.SharedUtil;
Expand All @@ -40,13 +35,12 @@
public class EnhancedBrowserWindowOpenerConnector extends BrowserWindowOpenerConnector {

private JavaScriptObject window;
private HandlerRegistration menuClickHandlerReg;


@Override
public void onClick(ClickEvent event) {
public void trigger() {
if (getState().clientSide) {
super.onClick(event);
super.trigger();
} else if (getState().popupBlockerWorkaround) {
window = openWindow(getState().target, getState().features);
}
Expand All @@ -56,40 +50,13 @@ public void onClick(ClickEvent event) {
public void onUnregister() {
window = null;
super.onUnregister();
if (menuClickHandlerReg != null) {
menuClickHandlerReg.removeHandler();
}


}

@Override
public EnhancedBrowserWindowOpenerState getState() {
return (EnhancedBrowserWindowOpenerState) super.getState();
}

@Override
protected void extend(ServerConnector target) {
if (target instanceof MenuBarConnector) {
extendMenu((MenuBarConnector) target);
} else {
super.extend(target);
}
}


private void extendMenu(MenuBarConnector target) {
VMenuBar widget = target.getWidget();

menuClickHandlerReg = widget.addHandler(event -> {
VConsole.log("======================= menu clicked " + getState().menuItem + " item is "
+ event.getMenuItem().getServerSideId());
if (event.getMenuItem().getServerSideId() == getState().menuItem) {
this.onClick(null);
}
}, ServerSideIdAwareMenuItem.MenuItemSelectedEvent.getType());
}

@OnStateChange("lastUpdated")
private void onLastUpdateChanged() {
if (!getState().clientSide && getState().lastUpdated > 0) {
Expand All @@ -103,9 +70,8 @@ private void onLastUpdateChanged() {
}
window = null;
} else {
super.onClick(null);
super.trigger();
}

}
}

Expand Down Expand Up @@ -153,7 +119,6 @@ private static native void closeWindow(JavaScriptObject window) /*-{
}-*/;

private static native void wrapMenu(VMenuBar hostReference) /*-{
console.log("======================================== OK", hostReference);
var clickFn = hostReference.onMenuClick;
hostReference.onMenuClick = function(itemId) {
console.log("My Fn invoked", itemId);
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,4 @@ public class EnhancedBrowserWindowOpenerState extends BrowserWindowOpenerState {

public boolean popupBlockerWorkaround = false;

public int menuItem = 0;
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,4 @@
<source path='client'/>
<source path='shared'/>

<replace-with class="org.vaadin.addon.ewopener.client.ServerSideIdAwareMenuItem">
<when-type-is class="com.vaadin.client.ui.VMenuBar.CustomMenuItem"/>
</replace-with>

</module>
Original file line number Diff line number Diff line change
Expand Up @@ -274,15 +274,13 @@ public void attach() {
super.attach();
EnhancedBrowserWindowOpener opener = EnhancedBrowserWindowOpener.extendOnce(button);
clickListener = e2 -> opener.open(streamContent());
button.addClickListener(clickListener);
//openerClickRegistration = button.addClickListener(e2 -> opener.open(streamContent()));
openerClickRegistration = button.addClickListener(e2 -> opener.open(streamContent()));
}

@Override
public void detach() {
EnhancedBrowserWindowOpener.extendOnce(button).remove();
button.removeClickListener(clickListener);
//openerClickRegistration.remove();
openerClickRegistration.remove();
super.detach();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ MenuBar.MenuItem subMenu = menuBar.addItem("Sub menu", null);
MenuBar.MenuItem subItem = subMenu.addItem("Download (client side)", aCommandIfYouLike);
MenuBar.MenuItem subItem2 = subMenu.addItem("Download (server side)", selectedItem -> openerWK.open());

openerWK.doExtend(menuBar, subItem2);
openerCS.doExtend(menuBar, subItem);
openerWK.doExtend(subItem2);
openerCS.doExtend(subItem);
```
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
<license.directory>${project.parent.relativePath}/license</license.directory>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<vaadin.version>8.0.2</vaadin.version>
<vaadin.version>8.4.1</vaadin.version>
<vaadin.plugin.version>${vaadin.version}</vaadin.plugin.version>
<maven-compiler-plugin.version>3.5.1</maven-compiler-plugin.version>
<maven-jar-plugin.version>3.0.2</maven-jar-plugin.version>
Expand Down

0 comments on commit 5d6cc0d

Please sign in to comment.