List of usage examples for com.google.gwt.http.client RequestBuilder setHeader
public void setHeader(String header, String value)
From source file:org.pentaho.mantle.client.solutionbrowser.fileproperties.PermissionsPanel.java
License:Open Source License
/** * @param fileSummary/* w ww . j av a2 s . co m*/ */ public PermissionsPanel(RepositoryFile theFileSummary) { this.fileSummary = theFileSummary; removeButton.setStylePrimaryName("pentaho-button"); addButton.setStylePrimaryName("pentaho-button"); usersAndRolesList.getElement().setId("sharePanelUsersAndRolesList"); addButton.getElement().setId("sharePanelAddButton"); removeButton.getElement().setId("sharePanelRemoveButton"); removeButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent clickEvent) { // find list to remove if (usersAndRolesList.getItemCount() == 0) { return; } dirty = true; for (final String userOrRoleString : SelectUserOrRoleDialog .getSelectedItemsValue(usersAndRolesList)) { String recipientType = getRecipientTypeByValue(userOrRoleString); //"(user)".length() = "(role)".length() = 6 String userOrRoleNameString = userOrRoleString.substring(0, userOrRoleString.length() - 6); removeRecipient(userOrRoleNameString, recipientType, fileInfo); usersAndRolesList.removeItem(usersAndRolesList.getSelectedIndex()); existingUsersAndRoles.remove(userOrRoleNameString); } if (usersAndRolesList.getItemCount() > 0) { usersAndRolesList.setSelectedIndex(0); } buildPermissionsTable(fileInfo); } }); addButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent clickEvent) { dirty = true; final SelectUserOrRoleDialog pickUserRoleDialog = new SelectUserOrRoleDialog(fileInfo, existingUsersAndRoles, new IUserRoleSelectedCallback() { public void roleSelected(String role) { //this was done to distinguish users and roles in case they are identical usersAndRolesList.addItem(role, role + "(role)"); //$NON-NLS-1$ existingUsersAndRoles.add(role); usersAndRolesList.setSelectedIndex(usersAndRolesList.getItemCount() - 1); addRecipient(role, ROLE_TYPE, fileInfo); buildPermissionsTable(fileInfo); } public void userSelected(String user) { usersAndRolesList.addItem(user, user + "(user)"); //$NON-NLS-1$ existingUsersAndRoles.add(user); usersAndRolesList.setSelectedIndex(usersAndRolesList.getItemCount() - 1); addRecipient(user, USER_TYPE, fileInfo); buildPermissionsTable(fileInfo); } }); pickUserRoleDialog.center(); } }); FlowPanel buttonPanel = new FlowPanel(); buttonPanel.add(addButton); buttonPanel.add(removeButton); usersAndRolesList.setVisibleItemCount(7); usersAndRolesList.addClickHandler(new ClickHandler() { public void onClick(ClickEvent clickEvent) { // update permissions list and permission label (put username in it) // rebuild permissionsTable settings based on selected mask buildPermissionsTable(fileInfo); } }); usersAndRolesList.setWidth("100%"); //$NON-NLS-1$ buttonPanel.setWidth("100%"); //$NON-NLS-1$ readPermissionCheckBox.getElement().setId("sharePermissionRead"); //$NON-NLS-1$ deletePermissionCheckBox.getElement().setId("sharePermissionDelete"); //$NON-NLS-1$ writePermissionCheckBox.getElement().setId("sharePermissionWrite"); //$NON-NLS-1$ managePermissionCheckBox.getElement().setId("sharePermissionManagePerm"); //$NON-NLS-1$ readPermissionCheckBox.addClickHandler(new ClickHandler() { public void onClick(ClickEvent clickEvent) { updatePermissionMask(fileInfo, readPermissionCheckBox.getValue(), PERM_READ); refreshPermission(); } }); deletePermissionCheckBox.addClickHandler(new ClickHandler() { public void onClick(ClickEvent clickEvent) { setDeleteCheckBox(deletePermissionCheckBox.getValue()); refreshPermission(); } }); writePermissionCheckBox.addClickHandler(new ClickHandler() { public void onClick(ClickEvent clickEvent) { setWriteCheckBox(writePermissionCheckBox.getValue()); refreshPermission(); } }); managePermissionCheckBox.addClickHandler(new ClickHandler() { public void onClick(ClickEvent clickEvent) { setManageCheckBox(managePermissionCheckBox.getValue()); refreshPermission(); } }); readPermissionCheckBox.setEnabled(false); inheritsCheckBox.addClickHandler(new ClickHandler() { public void onClick(ClickEvent clickEvent) { dirty = true; String moduleBaseURL = GWT.getModuleBaseURL(); String moduleName = GWT.getModuleName(); final String contextURL = moduleBaseURL.substring(0, moduleBaseURL.lastIndexOf(moduleName)); if (inheritsCheckBox.getValue()) { VerticalPanel vp = new VerticalPanel(); vp.add(new Label(Messages.getString("permissionsWillBeLostQuestion"))); //$NON-NLS-1$ // Get the state of add and remove button final boolean currRemoveButtonState = removeButton.isEnabled(); final boolean currAddButtonState = addButton.isEnabled(); final PromptDialogBox permissionsOverwriteConfirm = new PromptDialogBox( Messages.getString("permissionsWillBeLostConfirmMessage"), Messages.getString("ok"), //$NON-NLS-1$//$NON-NLS-2$ Messages.getString("cancel"), false, true, vp); //$NON-NLS-1$ final IDialogCallback callback = new IDialogCallback() { public void cancelPressed() { permissionsOverwriteConfirm.hide(); inheritsCheckBox.setValue(false); dirty = false; // BACKLOG-15986 Set the button state to value before the confirmation dialog setInheritsAcls(inheritsCheckBox.getValue(), fileInfo); addButton.setEnabled(currAddButtonState); removeButton.setEnabled(currRemoveButtonState); } public void okPressed() { String path = fileSummary.getPath().substring(0, fileSummary.getPath().lastIndexOf("/")); String url = contextURL + "api/repo/files/" + SolutionBrowserPanel.pathToId(path) //$NON-NLS-1$ + "/acl"; //$NON-NLS-1$ RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url); // This header is required to force Internet Explorer to not cache values from the GET response. builder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT"); try { builder.sendRequest(null, new RequestCallback() { public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() == Response.SC_OK) { initializePermissionPanel(XMLParser.parse(response.getText())); inheritsCheckBox.setValue(true); refreshPermission(); } else { inheritsCheckBox.setValue(false); refreshPermission(); MessageDialogBox dialogBox = new MessageDialogBox( Messages.getString("error"), //$NON-NLS-1$ Messages.getString("couldNotGetPermissions", //$NON-NLS-1$ response.getStatusText()), false, false, true); dialogBox.center(); } } @Override public void onError(Request request, Throwable exception) { inheritsCheckBox.setValue(false); refreshPermission(); MessageDialogBox dialogBox = new MessageDialogBox( Messages.getString("error"), //$NON-NLS-1$ Messages.getString("couldNotGetPermissions", //$NON-NLS-1$ exception.getLocalizedMessage()), false, false, true); dialogBox.center(); } }); } catch (RequestException e) { inheritsCheckBox.setValue(false); refreshPermission(); MessageDialogBox dialogBox = new MessageDialogBox(Messages.getString("error"), //$NON-NLS-1$ Messages.getString("couldNotGetPermissions", e.getLocalizedMessage()), //$NON-NLS-1$ false, false, true); dialogBox.center(); } } }; permissionsOverwriteConfirm.setCallback(callback); permissionsOverwriteConfirm.center(); } refreshPermission(); } }); int row = 0; setWidget(row++, 0, inheritsCheckBox); setWidget(row++, 0, new Label(Messages.getString("usersAndRoles"))); //$NON-NLS-1$ setWidget(row++, 0, usersAndRolesList); // right justify button panel CellFormatter buttonPanelCellFormatter = new CellFormatter(); buttonPanelCellFormatter.setHorizontalAlignment(row, 0, HasHorizontalAlignment.ALIGN_RIGHT); setCellFormatter(buttonPanelCellFormatter); setWidget(row++, 0, buttonPanel); setWidget(row++, 0, permissionsLabel); setWidget(row++, 0, permissionsTable); setCellPadding(4); setWidth("100%"); //$NON-NLS-1$ permissionsTable.setWidget(0, 0, managePermissionCheckBox); permissionsTable.setWidget(1, 0, deletePermissionCheckBox); permissionsTable.setWidget(2, 0, writePermissionCheckBox); permissionsTable.setWidget(3, 0, readPermissionCheckBox); permissionsTable.setStyleName("permissionsTable"); //$NON-NLS-1$ permissionsTable.setWidth("100%"); //$NON-NLS-1$ permissionsTable.setHeight("100%"); //$NON-NLS-1$ init(); }
From source file:org.pentaho.mantle.client.solutionbrowser.fileproperties.PermissionsPanel.java
License:Open Source License
/** * @return/*w w w .ja v a2 s .c o m*/ */ public List<RequestBuilder> prepareRequests() { ArrayList<RequestBuilder> requestBuilders = new ArrayList<RequestBuilder>(); String moduleBaseURL = GWT.getModuleBaseURL(); String moduleName = GWT.getModuleName(); String contextURL = moduleBaseURL.substring(0, moduleBaseURL.lastIndexOf(moduleName)); String url = contextURL + "api/repo/files/" + SolutionBrowserPanel.pathToId(fileSummary.getPath()) + "/acl"; //$NON-NLS-1$//$NON-NLS-2$ RequestBuilder builder = new RequestBuilder(RequestBuilder.PUT, url); builder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT"); builder.setHeader("Content-Type", "application/xml"); // At this point if we're inheriting we need to remove all the acls so that the inheriting flag isn't set by // default if (isInheritsAcls(fileInfo)) { removeAllAces(fileInfo); } else { // Check if any of the permission sets should be replaced with ALL. // Any non-inherited Ace with a permission set containing PERM_GRANT_PERM should be replaced // with a single PERM_ALL. NodeList aces = fileInfo.getElementsByTagName(ACES_ELEMENT_NAME); for (int i = 0; i < aces.getLength(); i++) { Element ace = (Element) aces.item(i); NodeList perms = ace.getElementsByTagName(PERMISSIONS_ELEMENT_NAME); for (int j = 0; j < perms.getLength(); j++) { Element perm = (Element) perms.item(j); if (perm.getFirstChild() != null) { if (Integer.parseInt(perm.getFirstChild().getNodeValue()) == PERM_GRANT_PERM) { replacePermissionsWithAll(ace, fileInfo); break; } } } } } // set request data in builder itself builder.setRequestData(fileInfo.toString()); // add builder to list to return to parent for execution requestBuilders.add(builder); return requestBuilders; }
From source file:org.pentaho.mantle.client.solutionbrowser.fileproperties.SelectUserOrRoleDialog.java
License:Open Source License
public void fetchAllRoles(final ArrayList<String> existing, final Document fileInfo) { try {/*www .ja va 2 s . c o m*/ final String url = GWT.getHostPageBaseURL() + "api/userrolelist/permission-roles"; //$NON-NLS-1$ RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, url); // This header is required to force Internet Explorer to not cache values from the GET response. requestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT"); requestBuilder.setHeader("accept", "application/json"); requestBuilder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable caught) { MessageDialogBox dialogBox = new MessageDialogBox(Messages.getString("error"), //$NON-NLS-1$ Messages.getString("couldNotGetRoles"), false, false, true); //$NON-NLS-1$ dialogBox.center(); } public void onResponseReceived(Request request, Response response) { JsArrayString roles = parseRolesJson(JsonUtils.escapeJsonForEval(response.getText())); // filter out existing rolesListBox.clear(); PermissionsPanel permPanel = new PermissionsPanel(null); for (int i = 0; i < roles.length(); i++) { String role = roles.get(i); if (!existing.contains(role)) { rolesListBox.addItem(role); } else { if (!permPanel.getNames(fileInfo, 1).contains(role) && permPanel.getNames(fileInfo, 0).contains(role)) { //we have equal user/role pair(s) and user already in existing list rolesListBox.addItem(role); } } } } }); } catch (RequestException e) { Window.alert(e.getMessage()); } }
From source file:org.pentaho.mantle.client.solutionbrowser.fileproperties.SelectUserOrRoleDialog.java
License:Open Source License
public void fetchAllUsers(final ArrayList<String> existing, final Document fileInfo) { try {/* www .ja va 2 s. c o m*/ final String url = GWT.getHostPageBaseURL() + "api/userrolelist/permission-users"; //$NON-NLS-1$ RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, url); // This header is required to force Internet Explorer to not cache values from the GET response. requestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT"); requestBuilder.setHeader("accept", "application/json"); requestBuilder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable caught) { MessageDialogBox dialogBox = new MessageDialogBox(Messages.getString("error"), //$NON-NLS-1$ Messages.getString("couldNotGetUsers"), false, false, true); //$NON-NLS-1$ dialogBox.center(); } public void onResponseReceived(Request request, Response response) { JsArrayString users = parseUsersJson(JsonUtils.escapeJsonForEval(response.getText())); // filter out existing usersListBox.clear(); PermissionsPanel permPanel = new PermissionsPanel(null); for (int i = 0; i < users.length(); i++) { String user = users.get(i); if (!existing.contains(user)) { usersListBox.addItem(user); } else { if (!permPanel.getNames(fileInfo, 0).contains(user) && permPanel.getNames(fileInfo, 1).contains(user)) { //we have equal user/role pair(s) and role already in existing list usersListBox.addItem(user); } } } } }); } catch (RequestException e) { Window.alert(e.getMessage()); } }
From source file:org.pentaho.mantle.client.solutionbrowser.RepositoryFileTreeManager.java
License:Open Source License
public void fetchRepositoryFileTree(final AsyncCallback<RepositoryFileTree> callback, Integer depth, String filter, Boolean showHidden) { // notify listeners that we are about to talk to the server (in case there's anything they want to do // such as busy cursor or tree loading indicators) beforeFetchRepositoryFileTree();/*from w w w. j a va 2 s . com*/ RequestBuilder builder = null; String url = GWT.getHostPageBaseURL() + "api/repo/files/:/tree?"; //$NON-NLS-1$ if (depth == null) { depth = -1; } if (filter == null) { filter = "*"; //$NON-NLS-1$ } if (showHidden == null) { showHidden = Boolean.FALSE; } url = url + "depth=" + depth + "&filter=" + filter + "&showHidden=" + showHidden + "&ts=" //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ + System.currentTimeMillis(); builder = new RequestBuilder(RequestBuilder.GET, url); builder.setHeader("Accept", "application/json"); builder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT"); RequestCallback innerCallback = new RequestCallback() { public void onError(Request request, Throwable exception) { Window.alert(exception.toString()); } public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() == Response.SC_OK) { String json = response.getText(); System.out.println(json); final JsonToRepositoryFileTreeConverter converter = new JsonToRepositoryFileTreeConverter( response.getText()); fileTree = converter.getTree(); String deletedFilesUrl = GWT.getHostPageBaseURL() + "api/repo/files/deleted?ts=" + System.currentTimeMillis(); RequestBuilder deletedFilesRequestBuilder = new RequestBuilder(RequestBuilder.GET, deletedFilesUrl); deletedFilesRequestBuilder.setHeader("Accept", "application/json"); deletedFilesRequestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT"); try { deletedFilesRequestBuilder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable exception) { fireRepositoryFileTreeFetched(); Window.alert(exception.toString()); } public void onResponseReceived(Request delRequest, Response delResponse) { if (delResponse.getStatusCode() == Response.SC_OK) { try { trashItems = JsonToRepositoryFileTreeConverter .getTrashFiles(delResponse.getText()); } catch (Throwable t) { // apparently this happens when you have no trash } fireRepositoryFileTreeFetched(); } else { fireRepositoryFileTreeFetched(); } } }); } catch (Exception e) { fireRepositoryFileTreeFetched(); } if (callback != null) { callback.onSuccess(fileTree); } } else { fileTree = new RepositoryFileTree(); RepositoryFile errorFile = new RepositoryFile(); errorFile.setFolder(true); errorFile.setName("!ERROR!"); fileTree.setFile(errorFile); } } }; try { builder.sendRequest(null, innerCallback); } catch (RequestException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:org.pentaho.mantle.client.solutionbrowser.SolutionBrowserPanel.java
License:Open Source License
public void getFile(final String solutionPath, final SolutionFileHandler handler) { final String moduleBaseURL = GWT.getModuleBaseURL(); final String moduleName = GWT.getModuleName(); final String contextURL = moduleBaseURL.substring(0, moduleBaseURL.lastIndexOf(moduleName)); final String path = solutionPath; // Expecting some encoding here final String url = contextURL + "api/repo/files/" + pathToId(path) + "/properties"; //$NON-NLS-1$ RequestBuilder executableTypesRequestBuilder = new RequestBuilder(RequestBuilder.GET, url); executableTypesRequestBuilder.setHeader("accept", "application/json"); executableTypesRequestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT"); try {//ww w .ja va2 s. c o m executableTypesRequestBuilder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable exception) { // showError(exception); } public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() == Response.SC_OK) { JSONObject jsonObject = new JSONObject(); jsonObject.put("repositoryFileDto", (JSONObject) JSONParser.parseLenient(response.getText())); RepositoryFile repositoryFile = new RepositoryFile(jsonObject); handler.handle(repositoryFile); } } }); } catch (RequestException e) { // showError(e); } }
From source file:org.pentaho.mantle.client.solutionbrowser.SolutionBrowserPanel.java
License:Open Source License
public void openFile(final String fileNameWithPath, final FileCommand.COMMAND mode) { final String moduleBaseURL = GWT.getModuleBaseURL(); final String moduleName = GWT.getModuleName(); final String contextURL = moduleBaseURL.substring(0, moduleBaseURL.lastIndexOf(moduleName)); final String path = fileNameWithPath; // Expecting some encoding here final String url = contextURL + "api/repo/files/" + pathToId(path) + "/properties"; //$NON-NLS-1$ RequestBuilder executableTypesRequestBuilder = new RequestBuilder(RequestBuilder.GET, url); executableTypesRequestBuilder.setHeader("accept", "application/json"); executableTypesRequestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT"); try {/* w w w . j a va 2s. co m*/ executableTypesRequestBuilder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable exception) { // showError(exception); } public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() == Response.SC_OK) { JSONObject jsonObject = new JSONObject(); jsonObject.put("repositoryFileDto", (JSONObject) JSONParser.parseLenient(response.getText())); RepositoryFile repositoryFile = new RepositoryFile(jsonObject); openFile(repositoryFile, mode); } } }); } catch (RequestException e) { // showError(e); } }
From source file:org.pentaho.mantle.client.solutionbrowser.SolutionBrowserPanel.java
License:Open Source License
protected void initializeExecutableFileTypes() { final String moduleBaseURL = GWT.getModuleBaseURL(); final String moduleName = GWT.getModuleName(); final String contextURL = moduleBaseURL.substring(0, moduleBaseURL.lastIndexOf(moduleName)); final String url = contextURL + "api/repos/executableTypes"; //$NON-NLS-1$ RequestBuilder executableTypesRequestBuilder = new RequestBuilder(RequestBuilder.GET, url); executableTypesRequestBuilder.setHeader("accept", "application/json"); executableTypesRequestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT"); try {//from w w w . j av a 2s. com executableTypesRequestBuilder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable exception) { // showError(exception); } public void onResponseReceived(Request request, Response response) { if (response.getStatusCode() == Response.SC_OK) { JSONObject jsonObject = (JSONObject) JSONParser.parse(response.getText()); JSONArray jsonList = (JSONArray) jsonObject.get("executableFileTypeDto"); for (int i = 0; i < jsonList.size(); i++) { JSONObject executableType = (JSONObject) jsonList.get(i); executableFileExtensions.add(executableType.get("extension").isString().stringValue()); } } } }); } catch (RequestException e) { // showError(e); } }
From source file:org.pentaho.mantle.client.solutionbrowser.SolutionBrowserPanel.java
License:Open Source License
public void executeActionSequence(final FileCommand.COMMAND mode) { if (filesListPanel.getSelectedFileItems() == null || filesListPanel.getSelectedFileItems().size() != 1) { return;/*from ww w .jav a 2 s.c om*/ } // open in content panel AbstractCommand authCmd = new AbstractCommand() { protected void performOperation() { performOperation(false); } protected void performOperation(boolean feedback) { final FileItem selectedFileItem = filesListPanel.getSelectedFileItems().get(0); String url = null; url = "api/repo/files/" //$NON-NLS-1$ + SolutionBrowserPanel.pathToId( filesListPanel.getSelectedFileItems().get(0).getRepositoryFile().getPath()) + "/generatedContent"; //$NON-NLS-1$ url = getPath() + url; if (mode == FileCommand.COMMAND.BACKGROUND) { MessageDialogBox dialogBox = new MessageDialogBox(Messages.getString("info"), //$NON-NLS-1$ Messages.getString("backgroundExecutionWarning"), //$NON-NLS-1$ true, false, true); dialogBox.center(); url += "&background=true"; //$NON-NLS-1$ RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url); try { builder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT"); builder.sendRequest(null, new RequestCallback() { public void onError(Request request, Throwable exception) { MessageDialogBox dialogBox = new MessageDialogBox(Messages.getString("error"), //$NON-NLS-1$ Messages.getString("couldNotBackgroundExecute"), false, false, true); //$NON-NLS-1$ dialogBox.center(); } public void onResponseReceived(Request request, Response response) { } }); } catch (RequestException e) { // ignored } } else if (mode == FileCommand.COMMAND.NEWWINDOW) { // popup blockers might attack this Window.open(url, "_blank", "menubar=yes,location=no,resizable=yes,scrollbars=yes,status=no"); //$NON-NLS-1$ //$NON-NLS-2$ } else if (mode == FileCommand.COMMAND.SUBSCRIBE) { final String myurl = url + "&subscribepage=yes"; //$NON-NLS-1$ contentTabPanel.showNewURLTab(selectedFileItem.getLocalizedName(), selectedFileItem.getLocalizedName(), myurl, true); } else { contentTabPanel.showNewURLTab(selectedFileItem.getLocalizedName(), selectedFileItem.getLocalizedName(), url, true); } } }; authCmd.execute(); }
From source file:org.pentaho.mantle.client.ui.PerspectiveManager.java
License:Open Source License
private PerspectiveManager() { getElement().setId("mantle-perspective-switcher"); setStyleName("mantle-perspective-switcher"); final String url = GWT.getHostPageBaseURL() + "api/plugin-manager/perspectives?ts=" //$NON-NLS-1$ + System.currentTimeMillis(); RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url); builder.setHeader("Content-Type", "application/json"); //$NON-NLS-1$//$NON-NLS-2$ builder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT"); try {//from w w w .j a v a 2 s. c o m 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); 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); }