use of org.pentaho.mantle.client.ui.xul.JsPerspective in project pentaho-platform by pentaho.
the class PerspectiveManager method setupPerspectiveManager.
private void setupPerspectiveManager() {
// $NON-NLS-1$
final String url = GWT.getHostPageBaseURL() + "api/plugin-manager/perspectives?ts=" + System.currentTimeMillis();
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
// $NON-NLS-1$//$NON-NLS-2$
builder.setHeader("Content-Type", "application/json");
builder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");
try {
builder.sendRequest(null, new RequestCallback() {
public void onError(Request request, Throwable exception) {
Window.alert("getPluginPerpectives fail: " + exception.getMessage());
}
public void onResponseReceived(Request request, Response response) {
JsArray<JsPerspective> jsperspectives = JsPerspective.parseJson(JsonUtils.escapeJsonForEval(response.getText()));
ArrayList<IPluginPerspective> perspectives = new ArrayList<IPluginPerspective>();
for (int i = 0; i < jsperspectives.length(); i++) {
JsPerspective jsperspective = jsperspectives.get(i);
// Don't include schedules if user doesn't have schedule permissions
if ("${schedules}".equals(jsperspective.getTitle()) && !canSchedule) {
continue;
}
DefaultPluginPerspective perspective = new DefaultPluginPerspective();
perspective.setContentUrl(jsperspective.getContentUrl());
perspective.setId(jsperspective.getId());
perspective.setLayoutPriority(Integer.parseInt(jsperspective.getLayoutPriority()));
ArrayList<String> requiredSecurityActions = new ArrayList<String>();
if (jsperspective.getRequiredSecurityActions() != null) {
for (int j = 0; j < jsperspective.getRequiredSecurityActions().length(); j++) {
requiredSecurityActions.add(jsperspective.getRequiredSecurityActions().get(j));
}
}
// will need to iterate over jsoverlays and convert to MantleXulOverlay
ArrayList<XulOverlay> overlays = new ArrayList<XulOverlay>();
if (jsperspective.getOverlays() != null) {
for (int j = 0; j < jsperspective.getOverlays().length(); j++) {
JsXulOverlay o = jsperspective.getOverlays().get(j);
MantleXulOverlay overlay = new MantleXulOverlay(o.getId(), o.getOverlayUri(), o.getSource(), o.getResourceBundleUri());
overlays.add(overlay);
}
}
perspective.setOverlays(overlays);
perspective.setRequiredSecurityActions(requiredSecurityActions);
perspective.setResourceBundleUri(jsperspective.getResourceBundleUri());
perspective.setTitle(jsperspective.getTitle());
perspectives.add(perspective);
}
setPluginPerspectives(perspectives);
}
});
} catch (RequestException e) {
// showError(e);
}
registerFunctions(this);
}
Aggregations