package com.thingtrack.konekti.view.web.workbench.ui;
import java.util.Hashtable;
import com.thingtrack.konekti.view.kernel.ui.layout.IViewContainer;
import com.thingtrack.konekti.view.kernel.ui.layout.LOCATION;
import com.vaadin.ui.MenuBar.MenuItem;
import com.vaadin.ui.TabSheet.Tab;
public class ResourceManager {
private Hashtable<String, Resource> resources = new Hashtable<String, ResourceManager.Resource>();
public class Resource {
private String id; // bundle unique identification; [bundle symbolic name]#[bundle Version]
private String caption; // bundle friendly name
private com.vaadin.terminal.Resource resource; // bundle icon
private LOCATION location; // bundle location layout
private boolean autoStart; // bundle autostart flag
private boolean closeable; // bundle closeable flag
private IViewContainer componentView; // bundle payload: visual component resource
private MenuItem menu; // bundle payload: menu item resource
private Tab tab; // bundle payload: tab resource
public Resource(String id, String caption, com.vaadin.terminal.Resource resource, LOCATION location, boolean autoStart, boolean closeable, IViewContainer componentView, MenuItem menu, Tab tab) {
this.id = id;
this.caption = caption;
this.resource = resource;
this.location = location;
this.autoStart = autoStart;
this.closeable = closeable;
this.componentView = componentView;
this.menu = menu;
this.tab = tab;
}
/**
* @return the component
*/
public IViewContainer getComponentView() {
return componentView;
}
/**
* @param component the component to set
*/
public void setComponentView(IViewContainer componentView) {
this.componentView = componentView;
}
/**
* @return the menu
*/
public MenuItem getMenu() {
return menu;
}
/**
* @param menu the menu to set
*/
public void setMenu(MenuItem menu) {
this.menu = menu;
}
/**
* @return the tab
*/
public Tab getTab() {
return tab;
}
/**
* @param tab the tab to set
*/
public void setTab(Tab tab) {
this.tab = tab;
}
/**
* @param location the location to set
*/
public void setLocation(LOCATION location) {
this.location = location;
}
/**
* @return the location
*/
public LOCATION getLocation() {
return location;
}
/**
* @param autoStart the autoStart to set
*/
public void setAutoStart(boolean autoStart) {
this.autoStart = autoStart;
}
/**
* @return the autoStart
*/
public boolean isAutoStart() {
return autoStart;
}
/**
* @return the id
*/
public String getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(String id) {
this.id = id;
}
/**
* @return the name
*/
public String getCaption() {
return caption;
}
/**
* @param name the name to set
*/
public void setCaption(String caption) {
this.caption = caption;
}
/**
* @param resource the resource to set
*/
public void setResource(com.vaadin.terminal.Resource resource) {
this.resource = resource;
}
/**
* @return the resource
*/
public com.vaadin.terminal.Resource getResource() {
return resource;
}
/**
* @return the closeable
*/
public boolean isCloseable() {
return closeable;
}
/**
* @param closeable the closeable to set
*/
public void setCloseable(boolean closeable) {
this.closeable = closeable;
}
}
public Resource getResource(String id) {
return resources.get(id);
}
public void addResource(String id, String caption, com.vaadin.terminal.Resource resource, LOCATION location, boolean autoStart, boolean closeable, IViewContainer componentView, MenuItem menu, Tab tab) {
resources.put(id, new Resource(id, caption, resource, location, autoStart, closeable, componentView, menu, tab));
}
public void removeResource(String id) {
resources.remove(id);
}
}