Accounting Manager
Added Tabs by Resources Configuration git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/admin/accounting-manager@131691 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
a320e72d19
commit
2a0b3cb7f3
|
@ -1,5 +1,6 @@
|
|||
package org.gcube.portlets.admin.accountingmanager.client;
|
||||
|
||||
import org.gcube.portlets.admin.accountingmanager.client.event.EnableTabsEvent;
|
||||
import org.gcube.portlets.admin.accountingmanager.client.filters.FiltersPanel;
|
||||
import org.gcube.portlets.admin.accountingmanager.client.maindata.MainDataPanel;
|
||||
import org.gcube.portlets.admin.accountingmanager.client.menu.AccountingManagerMenu;
|
||||
|
@ -7,6 +8,7 @@ import org.gcube.portlets.admin.accountingmanager.client.resource.AccountingMana
|
|||
import org.gcube.portlets.admin.accountingmanager.client.rpc.AccountingManagerService;
|
||||
import org.gcube.portlets.admin.accountingmanager.client.rpc.AccountingManagerServiceAsync;
|
||||
import org.gcube.portlets.admin.accountingmanager.client.utils.UtilsGXT3;
|
||||
import org.gcube.portlets.admin.accountingmanager.shared.tabs.EnableTabs;
|
||||
import org.gcube.portlets.user.gcubewidgets.client.ClientScopeHelper;
|
||||
|
||||
import com.allen_sauer.gwt.log.client.Log;
|
||||
|
@ -38,6 +40,9 @@ public class AccountingManager implements EntryPoint {
|
|||
private final AccountingManagerServiceAsync accountingManagerService = GWT
|
||||
.create(AccountingManagerService.class);
|
||||
|
||||
private EventBus eventBus;
|
||||
private AccountingManagerController controller;
|
||||
|
||||
// Main Panel
|
||||
private static BorderLayoutContainer mainPanelLayout;
|
||||
|
||||
|
@ -86,13 +91,31 @@ public class AccountingManager implements EntryPoint {
|
|||
|
||||
}
|
||||
|
||||
private void bindToEvents() {
|
||||
eventBus.addHandler(EnableTabsEvent.TYPE,
|
||||
new EnableTabsEvent.EnableTabsEventHandler() {
|
||||
|
||||
@Override
|
||||
public void onEnableTabs(EnableTabsEvent event) {
|
||||
Log.debug("Catch Event EnableTabsEvent");
|
||||
createMainInteface(event.getEnableTabs());
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void loadMainPanel() {
|
||||
AccountingManagerResources.INSTANCE.accountingManagerCSS()
|
||||
.ensureInjected();
|
||||
// ScriptInjector.fromString(AccountingManagerResources.INSTANCE.jqueryJs().getText()).setWindow(ScriptInjector.TOP_WINDOW).inject();
|
||||
|
||||
AccountingManagerController controller = new AccountingManagerController();
|
||||
EventBus eventBus = controller.getEventBus();
|
||||
controller = new AccountingManagerController();
|
||||
eventBus = controller.getEventBus();
|
||||
bindToEvents();
|
||||
|
||||
}
|
||||
|
||||
private void createMainInteface(EnableTabs enableTabs) {
|
||||
|
||||
// Layout
|
||||
mainPanelLayout = new BorderLayoutContainer();
|
||||
|
@ -108,7 +131,7 @@ public class AccountingManager implements EntryPoint {
|
|||
|
||||
// Menu
|
||||
AccountingManagerMenu accountingManagerMenu = new AccountingManagerMenu(
|
||||
eventBus);
|
||||
enableTabs, eventBus);
|
||||
|
||||
BorderLayoutData menuData = new BorderLayoutData(58);
|
||||
menuData.setMargins(new Margins(5));
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
|||
import java.util.Date;
|
||||
|
||||
import org.gcube.portlets.admin.accountingmanager.client.event.AccountingMenuEvent;
|
||||
import org.gcube.portlets.admin.accountingmanager.client.event.EnableTabsEvent;
|
||||
import org.gcube.portlets.admin.accountingmanager.client.event.ExportRequestEvent;
|
||||
import org.gcube.portlets.admin.accountingmanager.client.event.FiltersChangeEvent;
|
||||
import org.gcube.portlets.admin.accountingmanager.client.event.SessionExpiredEvent;
|
||||
|
@ -60,6 +61,7 @@ public class AccountingManagerController {
|
|||
@SuppressWarnings("unused")
|
||||
private BorderLayoutContainer mainPanel;
|
||||
private AccountingMonitor accountingMonitor;
|
||||
private EnableTabs enableTabs;
|
||||
|
||||
public AccountingManagerController() {
|
||||
eventBus = new SimpleEventBus();
|
||||
|
@ -73,14 +75,13 @@ public class AccountingManagerController {
|
|||
|
||||
private void init() {
|
||||
callHello();
|
||||
checkSession();
|
||||
bindToEvents();
|
||||
}
|
||||
|
||||
private void checkSession() {
|
||||
// if you do not need to something when the session expire
|
||||
// CheckSession.getInstance().startPolling();
|
||||
}
|
||||
/*
|
||||
* private void checkSession() { // if you do not need to something when the
|
||||
* session expire // CheckSession.getInstance().startPolling(); }
|
||||
*/
|
||||
|
||||
private void sessionExpiredShow() {
|
||||
CheckSession.showLogoutDialog();
|
||||
|
@ -116,40 +117,51 @@ public class AccountingManagerController {
|
|||
public void onSuccess(UserInfo result) {
|
||||
userInfo = result;
|
||||
Log.info("Hello: " + userInfo.getUsername());
|
||||
|
||||
retrieveEnableTabs();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void retrieveEnableTabs() {
|
||||
AccountingManagerServiceAsync.INSTANCE
|
||||
.getEnableTabs(new AsyncCallback<EnableTabs>() {
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
Log.error("Error retrieving enable tabs: " + caught.getLocalizedMessage());
|
||||
Log.error("Error retrieving enable tabs: "
|
||||
+ caught.getLocalizedMessage());
|
||||
if (caught instanceof SessionExpiredException) {
|
||||
UtilsGXT3.alert("Error", "Expired Session");
|
||||
sessionExpiredShowDelayed();
|
||||
} else {
|
||||
UtilsGXT3.alert("Error", caught.getLocalizedMessage());
|
||||
UtilsGXT3.alert("Error",
|
||||
caught.getLocalizedMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(EnableTabs enableTabs) {
|
||||
Log.info("Enable Tabs: " + enableTabs);
|
||||
|
||||
|
||||
doEnableTabs(enableTabs);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void doEnableTabs(EnableTabs enableTabs) {
|
||||
if (enableTabs == null || enableTabs.getTabs() == null
|
||||
|| enableTabs.getTabs().isEmpty()) {
|
||||
UtilsGXT3.alert("Attention",
|
||||
"You don't have permissions to see Accounting Information in this scope!");
|
||||
} else {
|
||||
this.enableTabs=enableTabs;
|
||||
EnableTabsEvent event = new EnableTabsEvent(enableTabs);
|
||||
eventBus.fireEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
private void sessionExpiredShowDelayed() {
|
||||
Timer timeoutTimer = new Timer() {
|
||||
|
@ -277,7 +289,7 @@ public class AccountingManagerController {
|
|||
}
|
||||
|
||||
public void showDefault() {
|
||||
createDefaultChart(AccountingType.STORAGE);
|
||||
createDefaultChart(enableTabs.getTabs().get(0).getAccountingType());
|
||||
}
|
||||
|
||||
private void createDefaultChart(AccountingType accountingType) {
|
||||
|
@ -447,7 +459,7 @@ public class AccountingManagerController {
|
|||
|
||||
}
|
||||
|
||||
//TODO save on workspace
|
||||
// TODO save on workspace
|
||||
@SuppressWarnings("unused")
|
||||
private void doSaveDataOnWorkspace(ExportRequestEvent event) {
|
||||
accountingMonitor = new AccountingMonitor();
|
||||
|
@ -516,12 +528,13 @@ public class AccountingManagerController {
|
|||
actionUrl.append(GWT.getModuleBaseURL());
|
||||
actionUrl.append(Constants.EXPORT_SERVLET + "?"
|
||||
+ Constants.EXPORT_SERVLET_TYPE_PARAMETER + "="
|
||||
+ event.getExportType().name()+"&"
|
||||
+ event.getExportType().name() + "&"
|
||||
+ Constants.EXPORT_SERVLET_ACCOUNTING_TYPE_PARAMETER + "="
|
||||
+ event.getAccountingType().name());
|
||||
|
||||
Log.debug("Retrieved link: " + actionUrl);
|
||||
Window.open(actionUrl.toString(), event.getAccountingType().toString(), "");
|
||||
Window.open(actionUrl.toString(), event.getAccountingType().toString(),
|
||||
"");
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
package org.gcube.portlets.admin.accountingmanager.client.event;
|
||||
|
||||
import org.gcube.portlets.admin.accountingmanager.shared.tabs.EnableTabs;
|
||||
|
||||
import com.google.gwt.event.shared.EventHandler;
|
||||
import com.google.gwt.event.shared.GwtEvent;
|
||||
import com.google.gwt.event.shared.HandlerRegistration;
|
||||
import com.google.gwt.event.shared.HasHandlers;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author "Giancarlo Panichi" <a
|
||||
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||
*
|
||||
*/
|
||||
public class EnableTabsEvent extends
|
||||
GwtEvent<EnableTabsEvent.EnableTabsEventHandler> {
|
||||
|
||||
public static Type<EnableTabsEventHandler> TYPE = new Type<EnableTabsEventHandler>();
|
||||
private EnableTabs enableTabs;
|
||||
|
||||
public interface EnableTabsEventHandler extends EventHandler {
|
||||
void onEnableTabs(EnableTabsEvent event);
|
||||
}
|
||||
|
||||
public interface HasEnableTabsEventHandler extends HasHandlers {
|
||||
public HandlerRegistration addEnableTabsEventHandler(
|
||||
EnableTabsEventHandler handler);
|
||||
}
|
||||
|
||||
public EnableTabsEvent(EnableTabs enableTabs) {
|
||||
this.enableTabs = enableTabs;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dispatch(EnableTabsEventHandler handler) {
|
||||
handler.onEnableTabs(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type<EnableTabsEventHandler> getAssociatedType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
public static Type<EnableTabsEventHandler> getType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
public static void fire(HasHandlers source, EnableTabsEvent enableTabsEvent) {
|
||||
source.fireEvent(enableTabsEvent);
|
||||
}
|
||||
|
||||
public EnableTabs getEnableTabs() {
|
||||
return enableTabs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "EnableTabsEvent [enableTabs=" + enableTabs + "]";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,11 +1,12 @@
|
|||
package org.gcube.portlets.admin.accountingmanager.client.menu;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.gcube.portlets.admin.accountingmanager.client.event.AccountingMenuEvent;
|
||||
import org.gcube.portlets.admin.accountingmanager.client.resource.AccountingManagerResources;
|
||||
import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingType;
|
||||
import org.gcube.portlets.admin.accountingmanager.shared.tabs.EnableTabData;
|
||||
import org.gcube.portlets.admin.accountingmanager.shared.tabs.EnableTabs;
|
||||
|
||||
import com.allen_sauer.gwt.log.client.Log;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
|
@ -19,20 +20,21 @@ import com.sencha.gxt.widget.core.client.TabPanel;
|
|||
|
||||
/**
|
||||
*
|
||||
* @author giancarlo
|
||||
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||
* @author giancarlo email: <a
|
||||
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||
*
|
||||
*/
|
||||
public class AccountingManagerMenu extends TabPanel {
|
||||
//private AccountingManagerMenuMessages msgs;
|
||||
// private AccountingManagerMenuMessages msgs;
|
||||
private EventBus eventBus;
|
||||
private ArrayList<AccountingType> enableTabs;
|
||||
private EnableTabs enableTabs;
|
||||
|
||||
public AccountingManagerMenu(EventBus eventBus) {
|
||||
super(GWT.<TabPanelAppearance>create(Css3BigTabPanelAppearance.class));
|
||||
public AccountingManagerMenu(EnableTabs enableTabs, EventBus eventBus) {
|
||||
super(GWT.<TabPanelAppearance> create(Css3BigTabPanelAppearance.class));
|
||||
Log.debug("Create AccountingManagerMenu");
|
||||
this.eventBus = eventBus;
|
||||
//this.msgs = GWT.create(AccountingManagerMenuMessages.class);
|
||||
this.enableTabs = enableTabs;
|
||||
// this.msgs = GWT.create(AccountingManagerMenuMessages.class);
|
||||
setBodyBorder(false);
|
||||
setBorders(false);
|
||||
setAnimScroll(false);
|
||||
|
@ -42,49 +44,77 @@ public class AccountingManagerMenu extends TabPanel {
|
|||
addTabs();
|
||||
}
|
||||
|
||||
|
||||
private void addTabs() {
|
||||
TabItemConfig storageItemConf = new TabItemConfig("Storage", false);
|
||||
storageItemConf.setIcon(AccountingManagerResources.INSTANCE.accountingStorage48());
|
||||
EmptyPanel storageCategory=new EmptyPanel(AccountingType.STORAGE.name());
|
||||
add(storageCategory, storageItemConf);
|
||||
|
||||
TabItemConfig serviceItemConf = new TabItemConfig("Service", false);
|
||||
serviceItemConf.setIcon(AccountingManagerResources.INSTANCE.accountingService48());
|
||||
EmptyPanel serviceCategory=new EmptyPanel(AccountingType.SERVICE.name());
|
||||
add(serviceCategory, serviceItemConf);
|
||||
|
||||
TabItemConfig jobItemConf = new TabItemConfig("Job", false);
|
||||
jobItemConf.setIcon(AccountingManagerResources.INSTANCE.accountingJob48());
|
||||
EmptyPanel jobCategory=new EmptyPanel(AccountingType.JOB.name());
|
||||
add(jobCategory, jobItemConf);
|
||||
for (EnableTabData enable : enableTabs.getTabs()) {
|
||||
if (enable.getAccountingType() != null) {
|
||||
switch (enable.getAccountingType()) {
|
||||
case JOB:
|
||||
TabItemConfig jobItemConf = new TabItemConfig("Job", false);
|
||||
jobItemConf.setIcon(AccountingManagerResources.INSTANCE
|
||||
.accountingJob48());
|
||||
EmptyPanel jobCategory = new EmptyPanel(AccountingType.JOB.name());
|
||||
add(jobCategory, jobItemConf);
|
||||
break;
|
||||
case PORTLET:
|
||||
break;
|
||||
case SERVICE:
|
||||
TabItemConfig serviceItemConf = new TabItemConfig("Service", false);
|
||||
serviceItemConf.setIcon(AccountingManagerResources.INSTANCE
|
||||
.accountingService48());
|
||||
EmptyPanel serviceCategory = new EmptyPanel(
|
||||
AccountingType.SERVICE.name());
|
||||
add(serviceCategory, serviceItemConf);
|
||||
break;
|
||||
case STORAGE:
|
||||
TabItemConfig storageItemConf = new TabItemConfig("Storage", false);
|
||||
storageItemConf.setIcon(AccountingManagerResources.INSTANCE
|
||||
.accountingStorage48());
|
||||
EmptyPanel storageCategory = new EmptyPanel(
|
||||
AccountingType.STORAGE.name());
|
||||
add(storageCategory, storageItemConf);
|
||||
|
||||
break;
|
||||
case TASK:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
TabItemConfig portletItemConf = new TabItemConfig("Portlet", false);
|
||||
portletItemConf.setIcon(AccountingManagerResources.INSTANCE.accountingPortlet48());
|
||||
EmptyPanel portletCategory=new EmptyPanel(AccountingType.PORTLET.name());
|
||||
add(portletCategory, portletItemConf);
|
||||
|
||||
TabItemConfig taskItemConf = new TabItemConfig("Task", false);
|
||||
taskItemConf.setIcon(AccountingManagerResources.INSTANCE.accountingTask48());
|
||||
EmptyPanel taskCategory=new EmptyPanel(AccountingType.TASK.name());
|
||||
add(taskCategory, taskItemConf);
|
||||
*/
|
||||
|
||||
|
||||
|
||||
* TabItemConfig portletItemConf = new TabItemConfig("Portlet", false);
|
||||
* portletItemConf
|
||||
* .setIcon(AccountingManagerResources.INSTANCE.accountingPortlet48());
|
||||
* EmptyPanel portletCategory=new
|
||||
* EmptyPanel(AccountingType.PORTLET.name()); add(portletCategory,
|
||||
* portletItemConf);
|
||||
*
|
||||
* TabItemConfig taskItemConf = new TabItemConfig("Task", false);
|
||||
* taskItemConf
|
||||
* .setIcon(AccountingManagerResources.INSTANCE.accountingTask48());
|
||||
* EmptyPanel taskCategory=new EmptyPanel(AccountingType.TASK.name());
|
||||
* add(taskCategory, taskItemConf);
|
||||
*/
|
||||
|
||||
setActiveWidget(getWidget(0));
|
||||
|
||||
|
||||
|
||||
addSelectionHandler(new SelectionHandler<Widget>() {
|
||||
|
||||
@Override
|
||||
public void onSelection(SelectionEvent<Widget> event) {
|
||||
Widget widget = event.getSelectedItem();
|
||||
if (widget instanceof EmptyPanel) {
|
||||
EmptyPanel p=(EmptyPanel) widget;
|
||||
AccountingMenuEvent accountMenuEvent=new AccountingMenuEvent(AccountingType.valueOf(p.getId()));
|
||||
EmptyPanel p = (EmptyPanel) widget;
|
||||
AccountingMenuEvent accountMenuEvent = new AccountingMenuEvent(
|
||||
AccountingType.valueOf(p.getId()));
|
||||
eventBus.fireEvent(accountMenuEvent);
|
||||
} else {
|
||||
|
||||
|
@ -94,6 +124,4 @@ public class AccountingManagerMenu extends TabPanel {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingType;
|
|||
*/
|
||||
public class Constants {
|
||||
public static final boolean DEBUG_MODE = false;
|
||||
public static final boolean TEST_ENABLE = true;
|
||||
public static final boolean TEST_ENABLE = false;
|
||||
|
||||
public static final String APPLICATION_ID = "org.gcube.portlets.admin.accountingmanager.server.portlet.AccountingManagerPortlet";
|
||||
public static final String ACCOUNTING_MANAGER_ID = "AccountingManagerId";
|
||||
|
|
Loading…
Reference in New Issue