this.productConfig = prodConfig;
this.context = context;
}
public Widget asWidget() {
final LayoutPanel layout = new LayoutPanel();
final PopupPanel toolsPopup = new DefaultPopup(DefaultPopup.Arrow.BOTTOM);
final List<String[]> toolReference = new ArrayList<String[]>();
if(context.isSuperUser()) {
toolReference.add(new String[]{"Management Model", "browser"});
}
toolReference.add(new String[]{"Expression Resolver", "expressions"});
if (diagnostics.isEnabled()) {
toolReference.add(new String[]{"Diagnostics", "debug-panel"});
}
// only enabled in dev mode
if (!GWT.isScript()) {
toolReference.add(new String[]{"Modelling", "mbui-workbench"});
toolReference.add(new String[]{"Resource Access", "access-log"});
}
final VerticalPanel toolsList = new VerticalPanel();
toolsList.getElement().setAttribute("width", "160px");
for(final String[] tool : toolReference)
{
InlineLink browser = new InlineLink(tool[0]);
browser.getElement().setAttribute("style", "margin:4px");
browser.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent clickEvent) {
toolsPopup.hide();
placeManager.revealPlace(
new PlaceRequest.Builder().nameToken(NameTokens.ToolsPresenter).with("name", tool[1])
.build());
}
});
toolsList.add(browser);
}
toolsPopup.setWidget(toolsList);
final HTML toolsLink = new HTML("<i class='icon-caret-up'></i> "+"Tools");
toolsLink.addStyleName("footer-link");
toolsLink.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent clickEvent) {
int listHeight = toolsList.getWidgetCount() * 25;
toolsPopup.setPopupPosition(
toolsLink.getAbsoluteLeft()-45,
toolsLink.getAbsoluteTop()-(listHeight-25)-50
);
toolsPopup.setWidth("165");
toolsPopup.setHeight(listHeight +"");
toolsPopup.show();
}
});
HTML settings = new HTML("<i class='icon-wrench'></i> "+Console.CONSTANTS.common_label_settings());
settings.addStyleName("footer-link");
settings.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
placeManager.revealPlace(
new PlaceRequest.Builder().nameToken(NameTokens.SettingsPresenter).build()
);
}
});
HorizontalPanel tools = new HorizontalPanel();
tools.add(toolsLink);
tools.add(settings);
layout.add(tools);
PROGRESS_ELEMENT.addStyleName("footer");
layout.add(PROGRESS_ELEMENT);
String versionToShow = productConfig.getConsoleVersion();
if (versionToShow == null) {
// That's no HAL build - fall back core version
versionToShow = productConfig.getCoreVersion();
}
HTML version = new HTML(versionToShow);
version.setTitle("Version Information");
version.addStyleName("footer-link");
version.getElement().setAttribute("style", "font-size:10px; align:left");
version.addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
final DefaultWindow window = new DefaultWindow("Version Information");
DialogueOptions options = new DialogueOptions(Console.CONSTANTS.common_label_done(), new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
window.hide();
}
}, "", new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
// noop
}
}).showCancel(false);
window.setWidth(480);
window.setHeight(360);
window.trapWidget(new WindowContentBuilder(new ProductConfigPanel().asWidget(), options).build());
window.setGlassEnabled(true);
window.center();
}
});
layout.add(version);
layout.setWidgetLeftWidth(version, 20, PX, 200, PX);
layout.setWidgetTopHeight(version, 10, PX, 32, PX);
layout.setWidgetRightWidth(PROGRESS_ELEMENT, 200, PX, 150, PX);
layout.setWidgetTopHeight(PROGRESS_ELEMENT, 12, PX, 32, PX);
layout.setWidgetRightWidth(tools, 5, PX, 200, PX);
layout.setWidgetTopHeight(tools, 10, PX, 32, PX);
layout.setWidgetHorizontalPosition(tools, Layout.Alignment.END);
layout.getElement().setAttribute("role", "complementary");
return layout;
}