Skip to content
Other versions

Loading…

Frontend UI hello world sample

Create a file called HelloWorld.gwt.xml in src/main/java/com/openkm/extension/frontend

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module SYSTEM "http://google-web-toolkit.googlecode.com/svn/releases/2.0/distro-source/core/src/gwt-module.dtd">
<module>
<!-- Inherit the core Web Toolkit stuff -->
<inherits name='com.google.gwt.user.User'/>
<inherits name="com.google.gwt.http.HTTP"/>
</module>

Edit Customization.gwt.xml in src/main/java/com/openkm/extension/frontend and add the new module

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module SYSTEM "http://google-web-toolkit.googlecode.com/svn/releases/2.0/distro-source/core/src/gwt-module.dtd">
<module>
<!-- Inherit the extension widgets -->
<inherits name="com.openkm.extension.frontend.HelloWorld"/>
</module>

Create a file called HelloWorld.java in src/main/java/com/openkm/extension/frontend/client

package com.openkm.extension.frontend.client;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.openkm.frontend.client.extension.communicator.GeneralCommunicator;
import com.openkm.frontend.client.extension.communicator.TabDocumentCommunicator;
import com.openkm.frontend.client.extension.event.HasDocumentEvent;
import com.openkm.frontend.client.extension.event.HasDocumentEvent.DocumentEventConstant;
import com.openkm.frontend.client.extension.event.HasLanguageEvent;
import com.openkm.frontend.client.extension.event.HasLanguageEvent.LanguageEventConstant;
import com.openkm.frontend.client.extension.event.handler.DocumentHandlerExtension;
import com.openkm.frontend.client.extension.event.handler.LanguageHandlerExtension;
import com.openkm.frontend.client.extension.widget.tabdocument.TabDocumentExtension;
public class HelloWorld extends TabDocumentExtension implements DocumentHandlerExtension, LanguageHandlerExtension {
Button refresh;
VerticalPanel vPanel;
public HelloWorld() {
HTML html = new HTML("Hello Word");
refresh = new Button("refresh UI");
refresh.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
GeneralCommunicator.refreshUI();
}
});
vPanel = new VerticalPanel();
vPanel.add(html);
vPanel.add(refresh);
refresh.setStyleName("okm-Input");
initWidget(vPanel);
}
@Override
public String getTabText() {
return "Hello tab";
}
@Override
public void onChange(DocumentEventConstant event) {
if (event.equals(HasDocumentEvent.DOCUMENT_CHANGED)) {
Window.alert("document changed - " + event.getType());
} else if (event.equals(HasDocumentEvent.KEYWORD_ADDED)) {
Window.alert("keyword added - " + event.getType());
} else if (event.equals(HasDocumentEvent.KEYWORD_REMOVED)) {
Window.alert("keyword removed - " + event.getType());
} else if (event.equals(HasDocumentEvent.CATEGORY_ADDED)) {
Window.alert("category added - " + event.getType());
} else if (event.equals(HasDocumentEvent.CATEGORY_REMOVED)) {
Window.alert("category removed - " + event.getType());
} else if (event.equals(HasDocumentEvent.TAB_CHANGED)) {
Window.alert("tab changed - " + event.getType() + " - actual tab " + TabDocumentCommunicator.getSelectedTab());
} else if (event.equals(HasDocumentEvent.PANEL_RESIZED)) {
Window.alert("panel resized - " + event.getType());
} else if (event.equals(HasDocumentEvent.SECURITY_CHANGED)) {
Window.alert("security changed - " + event.getType());
} else if (event.equals(HasDocumentEvent.NOTE_ADDED)) {
Window.alert("note added - " + event.getType());
}
}
@Override
public void onChange(LanguageEventConstant event) {
if (event.equals(HasLanguageEvent.LANGUAGE_CHANGED)) {
Window.alert("language changed");
}
}
}

Edit Customization.java, the OpenKM class, and add the HelloWorld widget:

package com.openkm.extension.frontend.client;
import java.util.ArrayList;
import java.util.List;
public class Customization {
/**
* getExtensionWidgets
*/
public static List<Object> getExtensionWidgets(List<String> uuidList) {
List<Object> extensions = new ArrayList<>();
// add here your widget extensions
extensions.add(new HelloWorld());
return extensions;
}
}

Compile the project, log in to OpenKM and you’ll see something like this: