dev/null
|binary
modules/core/domain/pom.xml
| 34 -
modules/core/domain/src/main/java/org/rhq/core/RHQDomain.gwt.xml
| 5
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/AlertCriteria.java
| 1
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
| 47 -
modules/core/domain/war/org.rhq.core.RHQDomain/RHQDomain.css
| 7
modules/core/domain/war/org.rhq.core.RHQDomain/RHQDomain.html
| 10
modules/core/domain/war/org.rhq.core.RHQDomain/hosted.html
| 333 ----------
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
| 13
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionEditorView.java
| 99 ++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
| 90 ++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleGroupsEditorItem.java
| 100 +++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
| 24
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
| 68 +-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
| 9
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
| 20
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java
| 18
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/HeaderLabel.java
| 35 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/SimpleCollapsiblePanel.java
| 1
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/Portlet.java
| 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
| 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupsDataSource.java
| 122 +++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
| 18
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
| 29
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
| 12
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceSummaryView.java
| 16
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/GraphListView.java
| 9
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/SmallGraphView.java
| 27
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java
| 1
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/ErrorHandler.java
| 44 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
| 71 +-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
| 10
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
| 16
modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css
| 58 +
modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html
| 4
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
| 17
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerBean.java
| 10
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
| 61 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryRunner.java
| 2
39 files changed, 859 insertions(+), 590 deletions(-)
New commits:
commit 39130db6bbeed3e7108ac483443a0d09d6de0c27
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Feb 26 16:57:27 2010 -0500
Start to Role permission and group assignment editing
RPCDatasource adjusted to expect column names that match the sortOverrides from their
respective criteria objects
Adjustments on list-detail model based on UXD feedback
Errorhandling infrastructure
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
index 27cbebd..9b081c0 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
@@ -9,6 +9,7 @@ import
org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourcesView;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceView;
import org.rhq.enterprise.gui.coregui.client.menu.MenuBarView;
import org.rhq.enterprise.gui.coregui.client.places.Place;
+import org.rhq.enterprise.gui.coregui.client.util.ErrorHandler;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
@@ -44,6 +45,8 @@ public class CoreGUI implements EntryPoint {
private static Subject sessionSubject;
private static Subject fullSubject;
+ private static ErrorHandler errorHandler = new ErrorHandler();
+
private static BreadCrumb breadCrumb;
private static Canvas content;
@@ -61,6 +64,13 @@ public class CoreGUI implements EntryPoint {
});
}
+ GWT.setUncaughtExceptionHandler(new GWT.UncaughtExceptionHandler() {
+ public void onUncaughtException(Throwable e) {
+ SC.say("Globally uncaught exception... " + e.getMessage());
+ e.printStackTrace();
+ }
+ });
+
RequestBuilder b = new RequestBuilder(RequestBuilder.GET,
"/j_security_check.do?j_username=rhqadmin&j_password=rhqadmin");
try {
b.setCallback(new RequestCallback() {
@@ -210,6 +220,9 @@ public class CoreGUI implements EntryPoint {
// -------------------- Static application utilities ----------------------
+ public static ErrorHandler getErrorHandler() {
+ return errorHandler;
+ }
public static Subject getSessionSubject() {
return sessionSubject;
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionEditorView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionEditorView.java
new file mode 100644
index 0000000..c788499
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionEditorView.java
@@ -0,0 +1,99 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.admin.roles;
+
+import org.rhq.core.domain.authz.Permission;
+import org.rhq.enterprise.gui.coregui.client.components.SimpleCollapsiblePanel;
+
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.fields.CanvasItem;
+import com.smartgwt.client.widgets.form.fields.CheckboxItem;
+import com.smartgwt.client.widgets.form.fields.FormItem;
+import com.smartgwt.client.widgets.form.fields.HeaderItem;
+
+import java.util.ArrayList;
+import java.util.EnumSet;
+import java.util.Set;
+
+/**
+ * @author Greg Hinkle
+ */
+public class PermissionEditorView extends CanvasItem {
+
+
+ private Set<Permission> permissions = EnumSet.noneOf(Permission.class);
+
+ private DynamicForm form;
+
+ public PermissionEditorView(String name, String title) {
+ super(name, title);
+
+
+ setCanvas(new SimpleCollapsiblePanel("Permissions", buildForm()));
+ }
+
+ @Override
+ public Canvas getCanvas() {
+ System.out.println("ANythinglksjgalksdjfalskdjfalkdjflaksjdfl?");
+ return super.getCanvas(); // TODO: Implement this method.
+ }
+
+ public Canvas buildForm() {
+ System.out.println("Building permissions canvas");
+
+// Object o = getAttributeAsObject(getFieldName());
+
+ this.form = new DynamicForm();
+ ArrayList<FormItem> items = new ArrayList<FormItem>();
+
+
+ HeaderItem h1 = new HeaderItem("globalPermissions","Global
Permissions");
+ h1.setValue("Global Permissions");
+ items.add(h1);
+ for (Permission p : Permission.values()) {
+ if (p.getTarget() == Permission.Target.GLOBAL) {
+ items.add(new CheckboxItem(p.name(),p.name()));
+ }
+ }
+
+ HeaderItem h2 = new HeaderItem("resourcePermissions","Resource
Permissions");
+ h2.setValue("Resource Permissions");
+ items.add(h2);
+ for (Permission p : Permission.values()) {
+ if (p.getTarget() == Permission.Target.RESOURCE) {
+ items.add(new CheckboxItem(p.name(),p.name()));
+ }
+ }
+
+ form.setItems(items.toArray(new FormItem[items.size()]));
+
+
+ return form;
+ }
+
+
+ public void setPermissions(Set<Permission> permissions) {
+ this.permissions = permissions;
+ for (Permission p : Permission.values()) {
+ form.setValue(p.name(), permissions.contains(p));
+ }
+ form.markForRedraw();
+ }
+}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
index 01e3843..56b913e 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
@@ -18,56 +18,116 @@
*/
package org.rhq.enterprise.gui.coregui.client.admin.roles;
+import org.rhq.core.domain.authz.Permission;
+import org.rhq.core.domain.resource.group.ResourceGroup;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.gui.coregui.client.components.HeaderLabel;
+
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.Record;
+import com.smartgwt.client.types.Overflow;
+import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.fields.CanvasItem;
+import com.smartgwt.client.widgets.form.fields.FormItem;
+import com.smartgwt.client.widgets.form.fields.ResetItem;
+import com.smartgwt.client.widgets.form.fields.SectionItem;
import com.smartgwt.client.widgets.form.fields.SubmitItem;
+import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.layout.VLayout;
+import java.util.Set;
+
/**
* @author Greg Hinkle
*/
public class RoleEditView extends VLayout {
private Label message = new Label("Select a role to edit...");
+
+
+ private VLayout editCanvas;
+ private HeaderLabel editLabel;
private DynamicForm form;
+ private PermissionEditorView permissionEditorItem;
+ private RoleGroupsEditorItem assignedGroupEditorItem;
+
+ public RoleEditView() {
+ super();
+ setPadding(10);
+ setOverflow(Overflow.AUTO);
+ }
+
@Override
protected void onInit() {
super.onInit();
-// addMember(message);
+
+ addMember(message);
addMember(buildRoleForm());
-
+
+ editCanvas.hide();
}
- DynamicForm buildRoleForm() {
+ private Canvas buildRoleForm() {
+
+ this.editCanvas = new VLayout();
+
+ editLabel = new HeaderLabel("Create User");
+ // TODO create header css style and set
+
+ editCanvas.addMember(editLabel);
form = new DynamicForm();
form.setAutoFetchData(true);
form.setDataSource(RolesDataSource.getInstance());
- form.setUseAllDataSourceFields(true);
+ TextItem idItem = new TextItem("id","Id");
+
+ TextItem nameItem = new TextItem("name","Name");
+
+ permissionEditorItem = new PermissionEditorView("permissionEditor",
"Permissions");
+ permissionEditorItem.setShowTitle(false);
+ permissionEditorItem.setColSpan(2);
+
- form.setItems(new SubmitItem("save","Save"));
- form.setItems(new SubmitItem("cancel","Cancel"));
-// form.hide();
+ assignedGroupEditorItem = new
RoleGroupsEditorItem("assignedGroups","Assigned Groups");
+ assignedGroupEditorItem.setShowTitle(false);
+ assignedGroupEditorItem.setColSpan(2);
- return form;
+ form.setItems(
+ idItem,
+ nameItem,
+ permissionEditorItem,
+ assignedGroupEditorItem,
+ new SubmitItem("save", "Save"), new
ResetItem("reset", "Reset"));
+
+
+ editCanvas.addMember(form);
+
+ return editCanvas;
}
public void editRecord(Record record) {
-
- form.editRecord(record);
-// message.hide();
- form.show();
- form.redraw();
+ message.hide();
+ editCanvas.show();
+ try {
+ editLabel.setContents("Editing user " +
record.getAttribute("name"));
+ form.editRecord(record);
+ permissionEditorItem.setPermissions((Set<Permission>)
record.getAttributeAsObject("permissions"));
+ assignedGroupEditorItem.setGroups((PageList<ResourceGroup>)
record.getAttributeAsObject("assignedGroups"));
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ markForRedraw();
}
public void editNone() {
-// form.hide();
-// message.show();
+ message.show();
+ editCanvas.hide();
+ markForRedraw();
}
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleGroupsEditorItem.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleGroupsEditorItem.java
new file mode 100644
index 0000000..1a2da36
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleGroupsEditorItem.java
@@ -0,0 +1,100 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.admin.roles;
+
+import org.rhq.core.domain.resource.group.ResourceGroup;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.gui.coregui.client.components.SimpleCollapsiblePanel;
+import org.rhq.enterprise.gui.coregui.client.inventory.groups.ResourceGroupsDataSource;
+
+import com.smartgwt.client.types.DragDataAction;
+import com.smartgwt.client.types.DragTrackerMode;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.TransferImgButton;
+import com.smartgwt.client.widgets.form.fields.CanvasItem;
+import com.smartgwt.client.widgets.grid.ListGrid;
+import com.smartgwt.client.widgets.grid.ListGridField;
+import com.smartgwt.client.widgets.layout.HLayout;
+import com.smartgwt.client.widgets.layout.VStack;
+
+/**
+ * @author Greg Hinkle
+ */
+public class RoleGroupsEditorItem extends CanvasItem {
+
+ private PageList<ResourceGroup> assignedGroups;
+
+ private ListGrid assignedGroupGrid;
+ private ListGrid availableGroupGrid;
+
+ public RoleGroupsEditorItem(String name, String title) {
+ super(name, title);
+ setCanvas(new SimpleCollapsiblePanel("Assigned Groups", buildForm()));
+ }
+
+ private Canvas buildForm() {
+
+ HLayout layout = new HLayout(10);
+
+ availableGroupGrid = new ListGrid();
+ availableGroupGrid.setMinHeight(350);
+ availableGroupGrid.setCanDragRecordsOut(true);
+ availableGroupGrid.setDragTrackerMode(DragTrackerMode.RECORD);
+ availableGroupGrid.setDragDataAction(DragDataAction.MOVE);
+ availableGroupGrid.setDataSource(new ResourceGroupsDataSource());
+ availableGroupGrid.setAutoFetchData(true);
+ availableGroupGrid.setFields(new ListGridField("id",50), new
ListGridField("name"));
+
+ layout.addMember(availableGroupGrid);
+
+ VStack moveButtonStack = new VStack(10);
+ moveButtonStack.setWidth(50);
+
+ TransferImgButton addButton = new TransferImgButton(TransferImgButton.RIGHT);
+ TransferImgButton removeButton = new TransferImgButton(TransferImgButton.LEFT);
+ TransferImgButton addAllButton = new
TransferImgButton(TransferImgButton.RIGHT_ALL);
+ TransferImgButton removeAllButton = new
TransferImgButton(TransferImgButton.LEFT_ALL);
+
+ moveButtonStack.addMember(addButton);
+ moveButtonStack.addMember(removeButton);
+ moveButtonStack.addMember(addAllButton);
+ moveButtonStack.addMember(removeAllButton);
+
+ layout.addMember(moveButtonStack);
+
+ assignedGroupGrid = new ListGrid();
+ assignedGroupGrid.setMinHeight(350);
+ assignedGroupGrid.setCanDragRecordsOut(true);
+ assignedGroupGrid.setCanAcceptDroppedRecords(true);
+ assignedGroupGrid.setDataSource(new ResourceGroupsDataSource());
+ assignedGroupGrid.setFields(new ListGridField("id", 50), new
ListGridField("name"));
+
+ layout.addMember(assignedGroupGrid);
+
+
+ return layout;
+ }
+
+ public void setGroups(PageList<ResourceGroup> assignedGroups) {
+ this.assignedGroups = assignedGroups;
+
+
assignedGroupGrid.setData(ResourceGroupsDataSource.buildRecords(assignedGroups));
+ }
+
+}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
index bf97cca..bf100c0 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
@@ -40,12 +40,10 @@ import com.smartgwt.client.widgets.grid.ListGridRecord;
*/
public class RolesDataSource extends RPCDataSource {
- private RoleGWTServiceAsync roleService = GWTServiceLookup.getRoleService();
-
- private boolean initialized = false;
-
private static RolesDataSource INSTANCE;
+ private RoleGWTServiceAsync roleService = GWTServiceLookup.getRoleService();
+
public static RolesDataSource getInstance() {
if (INSTANCE == null) {
INSTANCE = new RolesDataSource();
@@ -53,15 +51,12 @@ public class RolesDataSource extends RPCDataSource {
return INSTANCE;
}
-
- private String query;
-
protected RolesDataSource() {
super("Roles");
-
DataSourceField idDataField = new DataSourceIntegerField("id",
"ID");
idDataField.setPrimaryKey(true);
+ idDataField.setCanEdit(false);
DataSourceTextField nameField = new DataSourceTextField("name",
"Name");
@@ -74,8 +69,13 @@ public class RolesDataSource extends RPCDataSource {
final long start = System.currentTimeMillis();
RoleCriteria criteria = new RoleCriteria();
- criteria.setPageControl(getPageControl(request, criteria.getAlias()));
-
+ criteria.setPageControl(getPageControl(request));
+
+
+ criteria.setFetchResourceGroups(true);
+ criteria.setFetchPermissions(true);
+ criteria.setFetchSubjects(true);
+
roleService.findRolesByCriteria(criteria, new
AsyncCallback<PageList<Role>>() {
public void onFailure(Throwable caught) {
Window.alert("Failed to load " + caught.getMessage());
@@ -94,7 +94,10 @@ public class RolesDataSource extends RPCDataSource {
ListGridRecord record = new ListGridRecord();
record.setAttribute("id", role.getId());
record.setAttribute("name", role.getName());
+
+ record.setAttribute("resourceGroups",
role.getResourceGroups());
record.setAttribute("permissions", role.getPermissions());
+ record.setAttribute("subjects", role.getSubjects());
records[x] = record;
}
@@ -102,7 +105,6 @@ public class RolesDataSource extends RPCDataSource {
response.setData(records);
response.setTotalRows(result.getTotalSize()); // for paging to work we
have to specify size of full result set
processResponse(request.getRequestId(), response);
-
}
});
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
index 7356424..ab78f58 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
@@ -18,10 +18,14 @@
*/
package org.rhq.enterprise.gui.coregui.client.admin.roles;
+import org.rhq.enterprise.gui.coregui.client.Presenter;
import org.rhq.enterprise.gui.coregui.client.admin.users.UsersDataSource;
+import org.rhq.enterprise.gui.coregui.client.places.Place;
+import com.smartgwt.client.docs.CheckboxField;
import com.smartgwt.client.types.Autofit;
import com.smartgwt.client.types.ListGridFieldType;
+import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.types.SelectionAppearance;
import com.smartgwt.client.types.SelectionStyle;
import com.smartgwt.client.types.VisibilityMode;
@@ -31,6 +35,7 @@ import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
+import com.smartgwt.client.widgets.form.fields.CheckboxItem;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.events.SelectionChangedHandler;
@@ -41,17 +46,18 @@ import com.smartgwt.client.widgets.layout.SectionStackSection;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.toolbar.ToolStrip;
+import java.util.List;
+
/**
* @author Greg Hinkle
*/
-public class RolesView extends SectionStack {
+public class RolesView extends VLayout implements Presenter {
@Override
protected void onInit() {
super.onInit();
- setVisibilityMode(VisibilityMode.MULTIPLE);
setWidth100();
setHeight100();
@@ -59,7 +65,10 @@ public class RolesView extends SectionStack {
VLayout gridHolder = new VLayout();
gridHolder.setWidth100();
- gridHolder.setHeight100();
+ gridHolder.setHeight("50%");
+ gridHolder.setShowResizeBar(true);
+ gridHolder.setResizeBarTarget("next");
+
final ListGrid listGrid = new ListGrid();
listGrid.setWidth100();
@@ -68,24 +77,20 @@ public class RolesView extends SectionStack {
listGrid.setAutoFetchData(true);
listGrid.setAutoFitData(Autofit.HORIZONTAL);
listGrid.setAlternateRecordStyles(true);
- listGrid.setSelectionType(SelectionStyle.SIMPLE);
- listGrid.setSelectionAppearance(SelectionAppearance.CHECKBOX);
+// listGrid.setSelectionType(SelectionStyle.SIMPLE);
+// listGrid.setSelectionAppearance(SelectionAppearance.CHECKBOX);
listGrid.setShowFilterEditor(true);
+// listGrid.setUseAllDataSourceFields(true);
+
+
+ ListGridField idField = new ListGridField("id", "Id", 55);
+ idField.setType(ListGridFieldType.INTEGER);
- listGrid.setUseAllDataSourceFields(true);
+ ListGridField nameField = new ListGridField("username",
"Name");
-// ListGridField idField = new ListGridField("id", "Id", 55);
-// idField.setType(ListGridFieldType.INTEGER);
-//
-// ListGridField nameField = new ListGridField("username",
"Name", 100);
-//
-//
-// ListGridField descriptionField = new ListGridField("name",
"Name", 150);
-// ListGridField emailField = new ListGridField("email", "Email
Address", 100);
-//
-// listGrid.setFields(idField, nameField, descriptionField, emailField);
+ listGrid.setFields(idField, nameField);
gridHolder.addMember(listGrid);
@@ -127,31 +132,36 @@ public class RolesView extends SectionStack {
});
- SectionStackSection topSection = new SectionStackSection("Roles");
- topSection.setExpanded(true);
- topSection.setItems(gridHolder);
-
- addSection(topSection);
-
+ addMember(gridHolder);
final RoleEditView roleEditor = new RoleEditView();
-
- final SectionStackSection detailSection = new SectionStackSection("Edit
Role");
- detailSection.setItems(roleEditor);
- addSection(detailSection);
+ roleEditor.setOverflow(Overflow.AUTO);
+ addMember(roleEditor);
listGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
public void onSelectionChanged(SelectionEvent selectionEvent) {
if (selectionEvent.getState()) {
- expandSection(1);
roleEditor.editRecord(selectionEvent.getRecord());
- } else
- collapseSection(1);
+ } else {
roleEditor.editNone();
+ }
}
});
}
+
+ public boolean fireDisplay(Place place, List<Place> children) {
+ if (!getPlace().equals(place)) {
+ return false;
+ }
+
+
+ return true;
+ }
+
+ public Place getPlace() {
+ return new Place("Roles", "Manage Roles");
+ }
}
\ No newline at end of file
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
index 6bfc7a6..dcf7199 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
@@ -25,6 +25,7 @@ import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.gwt.SubjectGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
+import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.DSRequest;
@@ -62,16 +63,12 @@ public class UsersDataSource extends RPCDataSource {
DataSourceTextField usernameField = new DataSourceTextField("username",
"User Name");
usernameField.setCanEdit(false);
- //DataSourceTextField name = new DataSourceTextField("name",
"Name");
-
DataSourceTextField firstName = new DataSourceTextField("firstName",
"First Name");
DataSourceTextField lastName = new DataSourceTextField("lastName",
"Last Name");
-
DataSourceTextField email = new DataSourceTextField("email",
"Email Address");
-
DataSourceTextField phone = new DataSourceTextField("phoneNumber",
"Phone");
DataSourceTextField department = new DataSourceTextField("department",
"Department");
@@ -90,7 +87,7 @@ public class UsersDataSource extends RPCDataSource {
final long start = System.currentTimeMillis();
SubjectCriteria criteria = new SubjectCriteria();
- criteria.setPageControl(getPageControl(request, criteria.getAlias()));
+ criteria.setPageControl(getPageControl(request));
subjectService.findSubjectsByCriteria(criteria, new
AsyncCallback<PageList<Subject>>() {
public void onFailure(Throwable caught) {
@@ -109,7 +106,7 @@ public class UsersDataSource extends RPCDataSource {
ListGridRecord record = new ListGridRecord();
record.setAttribute("id",res.getId());
record.setAttribute("username",res.getName());
- record.setAttribute("name",res.getFirstName() + "
" + res.getLastName());
+// record.setAttribute("name",res.getFirstName() + "
" + res.getLastName());
record.setAttribute("firstName", res.getFirstName());
record.setAttribute("lastName", res.getLastName());
record.setAttribute("factive", res.getFactive());
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
index ba3bab3..1c2b183 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
@@ -18,7 +18,9 @@
*/
package org.rhq.enterprise.gui.coregui.client.admin.users;
+import org.rhq.enterprise.gui.coregui.client.Presenter;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDatasource;
+import org.rhq.enterprise.gui.coregui.client.places.Place;
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.types.Alignment;
@@ -44,10 +46,12 @@ import com.smartgwt.client.widgets.layout.SectionStackSection;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.toolbar.ToolStrip;
+import java.util.List;
+
/**
* @author Greg Hinkle
*/
-public class UsersView extends SectionStack {
+public class UsersView extends SectionStack implements Presenter {
@@ -154,4 +158,18 @@ public class UsersView extends SectionStack {
addSection(detailsSection);
}
+
+ public boolean fireDisplay(Place place, List<Place> children) {
+ if (!place.equals(getPlace())) {
+ return false;
+ }
+ if (children.size() > 0) {
+ int userId = Integer.parseInt(children.get(0).getId());
+ }
+ return true;
+ }
+
+ public Place getPlace() {
+ return new Place("users", "Users");
+ }
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java
index 9e73bbb..58c96e3 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java
@@ -77,10 +77,10 @@ public class AlertDataSource extends RPCDataSource {
idDataField.setPrimaryKey(true);
idDataField.setHidden(true);
- DataSourceField resourceIdDataField = new
DataSourceIntegerField("alertDefinition.resource.Id", "Resource Id");
+ DataSourceField resourceIdDataField = new
DataSourceIntegerField("resourceId", "Resource Id");
idDataField.setHidden(true);
- DataSourceTextField nameField = new
DataSourceTextField("alertDefinition.name", "Name", 100);
+ DataSourceTextField nameField = new DataSourceTextField("name",
"Name", 100);
DataSourceTextField conditionTextField = new
DataSourceTextField("conditionText", "Condition Text");
conditionTextField.setCanSortClientOnly(true);
@@ -92,7 +92,7 @@ public class AlertDataSource extends RPCDataSource {
recoveryInfoField.setCanSortClientOnly(true);
// TODO: Use DataSourceEnumField here?
- DataSourceTextField priorityField = new
DataSourceTextField("alertDefinition.priority", "Priority", 15);
+ DataSourceTextField priorityField = new DataSourceTextField("priority",
"Priority", 15);
DataSourceTextField ctimeField = new DataSourceTextField("ctime",
"Creation Time");
@@ -159,7 +159,7 @@ public class AlertDataSource extends RPCDataSource {
criteria.fetchConditionLogs(true);
criteria.fetchRecoveryAlertDefinition(true);
- criteria.setPageControl(getPageControl(request, criteria.getAlias()));
+ criteria.setPageControl(getPageControl(request));
this.alertService.findAlertsByCriteria(criteria, new
AsyncCallback<PageList<Alert>>() {
public void onFailure(Throwable caught) {
@@ -197,9 +197,9 @@ public class AlertDataSource extends RPCDataSource {
private ListGridRecord createRecord(Alert alert) {
ListGridRecord record = new ListGridRecord();
record.setAttribute("id", alert.getId());
- record.setAttribute("alertDefinition.resource.id",
alert.getAlertDefinition().getResource().getId());
- record.setAttribute("alertDefinition.name",
alert.getAlertDefinition().getName());
- record.setAttribute("alertDefinition.priority",
alert.getAlertDefinition().getPriority().name());
+ record.setAttribute("resourceId",
alert.getAlertDefinition().getResource().getId());
+ record.setAttribute("name", alert.getAlertDefinition().getName());
+ record.setAttribute("priority",
alert.getAlertDefinition().getPriority().name());
record.setAttribute("ctime", DATE_TIME_FORMAT.format(new
Date(alert.getCtime())));
Set<AlertConditionLog> conditionLogs = alert.getConditionLogs();
@@ -229,11 +229,11 @@ public class AlertDataSource extends RPCDataSource {
return record;
}
- @Override
+ /*@Override
protected List<OrderingField> getDefaultOrderingFields(String alias) {
List<OrderingField> orderingFields = new
ArrayList<OrderingField>(2);
orderingFields.add(new OrderingField(alias + ".alertDefinition.name",
PageOrdering.ASC));
orderingFields.add(new OrderingField(alias + ".ctime",
PageOrdering.DESC));
return orderingFields;
- }
+ }*/
}
\ No newline at end of file
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/HeaderLabel.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/HeaderLabel.java
new file mode 100644
index 0000000..f4ddfc3
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/HeaderLabel.java
@@ -0,0 +1,35 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.components;
+
+import com.smartgwt.client.widgets.HTMLFlow;
+import com.smartgwt.client.widgets.Label;
+
+/**
+ * @author Greg Hinkle
+ */
+public class HeaderLabel extends HTMLFlow {
+
+ public HeaderLabel(String contents) {
+ super(contents);
+ setHeight(60);
+ setStylePrimaryName("HeaderLabel");
+ setStyleName("HeaderLabel");
+ }
+}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/SimpleCollapsiblePanel.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/SimpleCollapsiblePanel.java
index 84d7c8c..e516d00 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/SimpleCollapsiblePanel.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/SimpleCollapsiblePanel.java
@@ -67,6 +67,7 @@ public class SimpleCollapsiblePanel extends VLayout {
button.setIcon("[skin]/images/SectionHeader/opener_closed.png");
content.hide();
}
+ getParentElement().markForRedraw();
markForRedraw();
}
});
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/Portlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/Portlet.java
index 7c2c825..71e97c4 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/Portlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/Portlet.java
@@ -54,5 +54,8 @@ public class Portlet extends Window {
// (since width is determined from the containing layout, not the portlet
contents)
// setVPolicy(LayoutPolicy.NONE);
setOverflow(Overflow.VISIBLE);
+
+ setCanDragResize(true);
+ setResizeFrom("B");
}
}
\ No newline at end of file
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
index dbacd16..d1fc4a3 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
@@ -19,6 +19,10 @@
package org.rhq.enterprise.gui.coregui.client.gwt;
+import org.rhq.core.domain.criteria.ResourceGroupCriteria;
+import org.rhq.core.domain.resource.group.ResourceGroup;
+import org.rhq.core.domain.util.PageList;
+
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@@ -30,5 +34,6 @@ import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@RemoteServiceRelativePath("ResourceGroupGWTService")
public interface ResourceGroupGWTService extends RemoteService {
+ PageList<ResourceGroup> findResourceGroupsByCriteria(ResourceGroupCriteria
criteria);
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupsDataSource.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupsDataSource.java
new file mode 100644
index 0000000..69a8968
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupsDataSource.java
@@ -0,0 +1,122 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.inventory.groups;
+
+import org.rhq.core.domain.criteria.ResourceGroupCriteria;
+import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.group.ResourceGroup;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGroupGWTServiceAsync;
+import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
+
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.data.DSRequest;
+import com.smartgwt.client.data.DSResponse;
+import com.smartgwt.client.data.DataSourceField;
+import com.smartgwt.client.data.fields.DataSourceImageField;
+import com.smartgwt.client.data.fields.DataSourceIntegerField;
+import com.smartgwt.client.data.fields.DataSourceTextField;
+import com.smartgwt.client.rpc.RPCResponse;
+import com.smartgwt.client.widgets.grid.ListGridRecord;
+
+/**
+ * @author Greg Hinkle
+ */
+public class ResourceGroupsDataSource extends RPCDataSource {
+
+ private String query;
+
+ private ResourceGroupGWTServiceAsync groupService =
GWTServiceLookup.getResourceGroupService();
+
+
+ public ResourceGroupsDataSource() {
+
+ DataSourceField idDataField = new DataSourceIntegerField("id",
"ID", 20);
+ idDataField.setPrimaryKey(true);
+
+ DataSourceTextField nameDataField = new DataSourceTextField("name",
"Name", 200);
+ nameDataField.setCanEdit(false);
+
+ DataSourceTextField descriptionDataField = new
DataSourceTextField("description", "Description");
+ descriptionDataField.setCanEdit(false);
+
+ DataSourceTextField typeNameDataField = new
DataSourceTextField("typeName", "Type");
+ DataSourceTextField pluginNameDataField = new
DataSourceTextField("pluginName", "Plugin");
+ DataSourceTextField categoryDataField = new
DataSourceTextField("category", "Category");
+
+
+ setFields(idDataField, nameDataField, descriptionDataField, typeNameDataField,
pluginNameDataField, categoryDataField);
+ }
+
+ public void executeFetch(final DSRequest request, final DSResponse response) {
+ final long start = System.currentTimeMillis();
+
+ ResourceGroupCriteria criteria = new ResourceGroupCriteria();
+ criteria.setPageControl(getPageControl(request));
+ criteria.addFilterName(query);
+
+
+ groupService.findResourceGroupsByCriteria(criteria, new
AsyncCallback<PageList<ResourceGroup>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to load groups",
caught);
+ response.setStatus(RPCResponse.STATUS_FAILURE);
+ processResponse(request.getRequestId(), response);
+ }
+
+ public void onSuccess(PageList<ResourceGroup> result) {
+ System.out.println("Data retrieved in: " +
(System.currentTimeMillis() - start));
+
+ response.setData(buildRecords(result));
+ response.setTotalRows(result.getTotalSize()); // for paging to work we
have to specify size of full result set
+ processResponse(request.getRequestId(), response);
+ }
+ });
+ }
+
+
+ public static ListGridRecord[] buildRecords(PageList<ResourceGroup> groupList)
{
+
+ ListGridRecord[] records = null;
+ if (groupList != null) {
+ records = new ListGridRecord[groupList.size()];
+
+ for (int x = 0; x < groupList.size(); x++) {
+ ResourceGroup group = groupList.get(x);
+ ListGridRecord record = new ListGridRecord();
+ record.setAttribute("group", group);
+ record.setAttribute("id", group.getId());
+ record.setAttribute("name", group.getName());
+ record.setAttribute("description", group.getDescription());
+ record.setAttribute("groupCategory",
group.getGroupCategory());
+
+ record.setAttribute("resourceType", group.getResourceType());
+ record.setAttribute("typeName",
group.getResourceType().getName());
+ record.setAttribute("pluginName",
group.getResourceType().getPlugin());
+
+ records[x] = record;
+ }
+ }
+ return records;
+ }
+
+}
\ No newline at end of file
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
index 618fefe..647b072 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
@@ -58,11 +58,15 @@ public class ResourceDatasource extends RPCDataSource {
DataSourceTextField descriptionDataField = new
DataSourceTextField("description", "Description");
descriptionDataField.setCanEdit(false);
- DataSourceImageField availabilityDataField = new
DataSourceImageField("currentAvailability.availabilityType",
- "Availability", 20);
+ DataSourceTextField typeNameDataField = new
DataSourceTextField("typeName", "Type");
+ DataSourceTextField pluginNameDataField = new
DataSourceTextField("pluginName", "Plugin");
+ DataSourceTextField categoryDataField = new
DataSourceTextField("category", "Category");
+
+ DataSourceImageField availabilityDataField = new
DataSourceImageField("currentAvailability", "Availability", 20);
+
availabilityDataField.setCanEdit(false);
- setFields(idDataField, nameDataField, descriptionDataField,
availabilityDataField);
+ setFields(idDataField, nameDataField, descriptionDataField, typeNameDataField,
pluginNameDataField, categoryDataField, availabilityDataField);
}
public String getQuery() {
@@ -78,7 +82,7 @@ public class ResourceDatasource extends RPCDataSource {
final long start = System.currentTimeMillis();
ResourceCriteria criteria = new ResourceCriteria();
- criteria.setPageControl(getPageControl(request, criteria.getAlias()));
+ criteria.setPageControl(getPageControl(request));
criteria.addFilterName(this.query);
resourceService.findResourcesByCriteria(criteria, new
AsyncCallback<PageList<Resource>>() {
@@ -101,7 +105,11 @@ public class ResourceDatasource extends RPCDataSource {
record.setAttribute("id",res.getId());
record.setAttribute("name",res.getName());
record.setAttribute("description",res.getDescription());
-
record.setAttribute("currentAvailability.availabilityType",
+
record.setAttribute("typeName",res.getResourceType().getName());
+
record.setAttribute("pluginName",res.getResourceType().getPlugin());
+
record.setAttribute("category",res.getResourceType().getCategory().getDisplayName());
+
+ record.setAttribute("currentAvailability",
res.getCurrentAvailability().getAvailabilityType() ==
AvailabilityType.UP
? "/images/icons/availability_green_16.png"
: "/images/icons/availability_red_16.png");
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
index 333a877..8a6b60f 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
@@ -27,6 +27,7 @@ import
org.rhq.enterprise.gui.coregui.client.gwt.ResourceGWTServiceAsync;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.Criteria;
+import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.ListGridFieldType;
import com.smartgwt.client.types.SelectionAppearance;
@@ -108,34 +109,17 @@ public class ResourceSearchView extends VLayout {
}
});
- /* TODO: Safe to remove this, we're now using links in the records
- nameField.addRecordClickHandler(new RecordClickHandler() {
- public void onRecordClick(final RecordClickEvent recordClickEvent) {
- for (final ResourceSelectListener l : selectListeners) {
- // TODO GH: This doesn't work
- final int resourceId =
recordClickEvent.getRecord().getAttributeAsInt("id");
- ResourceCriteria c = new ResourceCriteria();
- c.addFilterId(resourceId);
-
ResourceGWTServiceAsync.Util.getInstance().findResourcesByCriteria(CoreGUI.getSessionSubject(),
c, new AsyncCallback<PageList<Resource>>() {
- public void onFailure(Throwable caught) {
- System.out.println("Failed ehre");
- }
- public void onSuccess(PageList<Resource> result) {
+ ListGridField descriptionField = new ListGridField("description",
"Description");
+ ListGridField typeNameField = new ListGridField("typeName",
"Type", 130);
+ ListGridField pluginNameField = new ListGridField("pluginName",
"Plugin", 100);
+ ListGridField categoryField = new ListGridField("category",
"Category", 60);
- l.onResourceSelected(result.get(0));
- }
- });
- }
- }
- });
- */
- ListGridField descriptionField = new ListGridField("description",
"Description");
ListGridField availabilityField = new
ListGridField("currentAvailability", "Availability", 55);
availabilityField.setAlign(Alignment.CENTER);
- listGrid.setFields(idField, nameField, descriptionField, availabilityField);
+ listGrid.setFields(idField, nameField, descriptionField, typeNameField,
pluginNameField, categoryField, availabilityField);
gridHolder.addMember(listGrid);
@@ -159,6 +143,7 @@ public class ResourceSearchView extends VLayout {
+
final Label tableInfo = new Label("Total: " +
listGrid.getTotalRows());
tableInfo.setWrap(false);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
index dede07c..0e2a101 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
@@ -22,6 +22,7 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.enterprise.gui.coregui.client.Presenter;
import org.rhq.enterprise.gui.coregui.client.components.FullHTMLPane;
+import org.rhq.enterprise.gui.coregui.client.components.SimpleCollapsiblePanel;
import org.rhq.enterprise.gui.coregui.client.components.SubTabLayout;
import
org.rhq.enterprise.gui.coregui.client.components.configuration.ConfigurationEditor;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceSelectListener;
@@ -50,6 +51,7 @@ public class ResourceDetailView extends VLayout implements Presenter,
ResourceSe
private Resource resource;
+ private SimpleCollapsiblePanel summaryPanel;
private ResourceSummaryView summaryView;
private Tab summaryTab;
@@ -76,8 +78,14 @@ public class ResourceDetailView extends VLayout implements Presenter,
ResourceSe
setWidth100();
setHeight100();
- // addMember(new ResourceSummaryView());
+
+
+ // The header section
summaryView = new ResourceSummaryView();
+ summaryPanel = new SimpleCollapsiblePanel("Summary", summaryView);
+
+
+ // The Tabs section
topTabSet = new TabSet();
topTabSet.setTabBarPosition(Side.TOP);
@@ -102,7 +110,7 @@ public class ResourceDetailView extends VLayout implements Presenter,
ResourceSe
title.setContents("Loading...");
addMember(title);
- addMember(summaryView);
+ addMember(summaryPanel);
addMember(topTabSet);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceSummaryView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceSummaryView.java
index f16b04e..0cd388a 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceSummaryView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceSummaryView.java
@@ -161,14 +161,14 @@ public class ResourceSummaryView extends DynamicForm implements
ResourceSelectLi
// item.setValue("?");
}
- SectionItem section = new SectionItem("Summary", "Summary");
- section.setTitle("Summary");
- section.setDefaultValue("Summary");
- section.setCanCollapse(true);
- section.setCellStyle("HidablePlainSectionHeader");
- section.setItemIds(itemIds.toArray(new String[itemIds.size()]));
-
- formItems.add(0, section);
+// SectionItem section = new SectionItem("Summary",
"Summary");
+// section.setTitle("Summary");
+// section.setDefaultValue("Summary");
+// section.setCanCollapse(true);
+// section.setCellStyle("HidablePlainSectionHeader");
+// section.setItemIds(itemIds.toArray(new String[itemIds.size()]));
+// formItems.add(0, section);
+
formItems.add(new SpacerItem());
setItems(formItems.toArray(new FormItem[formItems.size()]));
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/GraphListView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/GraphListView.java
index 1ff9332..df284fa 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/GraphListView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/GraphListView.java
@@ -62,7 +62,9 @@ public class GraphListView extends VLayout implements
ResourceSelectListener {
for (Canvas c : getMembers()) {
c.destroy();
}
- buildGraphs();
+ if (resource != null) {
+ buildGraphs();
+ }
}
@@ -113,8 +115,11 @@ public class GraphListView extends VLayout implements
ResourceSelectListener {
}
private void buildGraph(MeasurementDefinition def,
List<MeasurementDataNumericHighLowComposite> data) {
+ SmallGraphView graph = new SmallGraphView(def, data);
+ graph.setWidth("80%");
+ graph.setHeight(250);
- addMember(new SmallGraphView(def, data));
+ addMember(graph);
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/SmallGraphView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/SmallGraphView.java
index b053c71..525c8b7 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/SmallGraphView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/SmallGraphView.java
@@ -36,6 +36,7 @@ import ca.nanometrics.gflot.client.options.TickFormatter;
import org.rhq.core.domain.measurement.MeasurementConverterClient;
import org.rhq.core.domain.measurement.MeasurementDefinition;
+import org.rhq.core.domain.measurement.MeasurementUnits;
import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowComposite;
import com.google.gwt.i18n.client.DateTimeFormat;
@@ -43,6 +44,7 @@ import com.smartgwt.client.types.AnimationEffect;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.HTMLFlow;
import com.smartgwt.client.widgets.Label;
+import com.smartgwt.client.widgets.WidgetCanvas;
import com.smartgwt.client.widgets.layout.VLayout;
import java.util.Date;
@@ -74,9 +76,12 @@ public class SmallGraphView extends VLayout {
super();
this.definition = def;
this.data = data;
- setHeight(250);
+// setHeight(250);
+ setHeight100();
setWidth100();
- setPadding(10);
+// setPadding(10);
+
+
}
public String getName() {
@@ -94,6 +99,13 @@ public class SmallGraphView extends VLayout {
drawGraph();
}
+
+ @Override
+ public void parentResized() {
+ super.parentResized();
+ onDraw();
+ }
+
private void drawGraph() {
PlotModel model = new PlotModel();
@@ -117,7 +129,9 @@ public class SmallGraphView extends VLayout {
// create the plot
SimplePlot plot = new SimplePlot(model, plotOptions);
- plot.setSize("100%","70%");
+ plot.setSize(String.valueOf(getInnerContentWidth()),
String.valueOf(getInnerContentHeight() - 20));
+// "80%","80%");
+
// add hover listener
@@ -159,7 +173,8 @@ public class SmallGraphView extends VLayout {
if (definition != null) {
addMember(new HTMLFlow("<b>" + definition.getDisplayName() +
"</b> " + definition.getDescription()));
}
- addMember(plot);
+
+ addMember(new WidgetCanvas(plot));
}
private String getHover(PlotItem item) {
@@ -190,7 +205,9 @@ public class SmallGraphView extends VLayout {
plotOptions.setXAxisOptions(new AxisOptions().setTicks(8).
setMinimum(min).setMaximum(max).setTickFormatter(new TickFormatter() {
public String formatTickValue(double tickValue, Axis axis) {
- return String.valueOf(new Date((long) tickValue));
+ com.google.gwt.i18n.client.DateTimeFormat dateFormat =
DateTimeFormat.getShortDateTimeFormat();
+ return dateFormat.format(new Date((long)tickValue));
+// return String.valueOf(new Date((long) tickValue));
// return MONTH_NAMES[(int) (tickValue - 1)];
}
}));
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java
index a45cfa4..90dcac4 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java
@@ -106,6 +106,7 @@ public class MenuBarView extends HLayout {
Hyperlink dashboardLink = new Hyperlink("Dashboard",
"Dashboard");
dashboardLink.setStylePrimaryName("TopSectionLink");
+ dashboardLink.setStyleName("TopSectionLink");
addMember(dashboardLink);
Hyperlink demoLink = new Hyperlink("Demo", "Demo");
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/ErrorHandler.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/ErrorHandler.java
new file mode 100644
index 0000000..766f6a5
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/ErrorHandler.java
@@ -0,0 +1,44 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.util;
+
+import com.smartgwt.client.util.SC;
+
+import java.util.List;
+
+/**
+ * @author Greg Hinkle
+ */
+public class ErrorHandler {
+
+
+ private List<String> errors;
+
+
+ public void handleError(String message, Throwable t) {
+
+ // TODO: This is just a placeholder implementation
+ SC.say(message);
+
+ t.printStackTrace();
+ errors.add(message);
+
+ }
+
+}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
index ef00853..c979e3f 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
@@ -18,9 +18,11 @@
*/
package org.rhq.enterprise.gui.coregui.client.util;
+import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.util.OrderingField;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageOrdering;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import com.smartgwt.client.data.DSRequest;
import com.smartgwt.client.data.DSResponse;
@@ -51,60 +53,59 @@ public abstract class RPCDataSource extends DataSource {
@Override
protected Object transformRequest(DSRequest request) {
- switch (request.getOperationType()) {
- case FETCH:
- DSResponse response = createResponse(request);
- executeFetch(request, response);
- break;
- case ADD:
- case UPDATE:
- case REMOVE:
- super.transformRequest(request);
- break;
- default:
- super.transformRequest(request);
- break;
+ try {
+ switch (request.getOperationType()) {
+ case FETCH:
+ DSResponse response = createResponse(request);
+ executeFetch(request, response);
+ break;
+ case ADD:
+ case UPDATE:
+ case REMOVE:
+ super.transformRequest(request);
+ break;
+ default:
+ super.transformRequest(request);
+ break;
+ }
+ } catch (Throwable t) {
+ CoreGUI.getErrorHandler().handleError("Failure in datasource [" +
request.getOperationType() + "]", t);
+ return null;
}
-
return request.getData();
}
/**
* Returns a prepopulated PageControl based on the provided DSRequest. This will set
sort fields,
* pagination, but *not* filter fields.
- *
+ *
* @param request the request to turn into a page control
* @return the page control for passing to criteria and other queries
*/
- protected PageControl getPageControl(DSRequest request, String alias) {
+ protected PageControl getPageControl(DSRequest request) {
// Initialize paging.
- PageControl pageControl =
PageControl.getExplicitPageControl(request.getStartRow(), request.getEndRow() -
request.getStartRow());
+ PageControl pageControl;
+ if (request.getStartRow() == null || request.getEndRow() == null) {
+ pageControl = new PageControl();
+ } else {
+ pageControl = PageControl.getExplicitPageControl(request.getStartRow(),
request.getEndRow() - request.getStartRow());
+ }
// Initialize sorting.
String sortBy = request.getAttribute("sortBy");
- if (sortBy == null) {
- List<OrderingField> orderingFields = getDefaultOrderingFields(alias);
- if (orderingFields != null) {
- for (OrderingField orderingField : orderingFields) {
- pageControl.addDefaultOrderingField(orderingField.getField(),
orderingField.getOrdering());
- }
- }
- } else {
+ if (sortBy != null) {
String[] sorts = sortBy.split(",");
for (String sort : sorts) {
PageOrdering ordering = (sort.startsWith("-")) ?
PageOrdering.DESC : PageOrdering.ASC;
String columnName = (ordering == PageOrdering.DESC) ? sort.substring(1) :
sort;
- String fieldName = alias + "." + columnName;
- pageControl.addDefaultOrderingField(fieldName, ordering);
+ ResourceCriteria c;
+ pageControl.addDefaultOrderingField(columnName, ordering);
}
}
return pageControl;
}
- protected List<OrderingField> getDefaultOrderingFields(String alias) {
- return null;
- }
protected abstract void executeFetch(final DSRequest request, final DSResponse
response);
@@ -112,13 +113,13 @@ public abstract class RPCDataSource extends DataSource {
* Executed on <code>REMOVE</code> operation. <code>processResponse
(requestId, response)</code>
* should be called when operation completes (either successful or failure).
*
- * @param request <code>DSRequest</code> being processed.
<code>request.getData ()</code>
- * contains record should be removed.
+ * @param request <code>DSRequest</code> being processed.
<code>request.getData ()</code>
+ * contains record should be removed.
* @param response <code>DSResponse</code>. <code>setData
(list)</code> should be called on
- * successful execution of this method. Array should contain single element
representing
- * removed row. <code>setStatus (<0)</code> should be called
on failure.
+ * successful execution of this method. Array should contain single
element representing
+ * removed row. <code>setStatus (<0)</code> should
be called on failure.
*/
- protected void executeRemove (final DSRequest request, final DSResponse response) {
+ protected void executeRemove(final DSRequest request, final DSResponse response) {
throw new UnsupportedOperationException("This dataSource does not support
removal.");
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
index 4198923..6230e90 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
@@ -120,17 +120,9 @@ public class ResourceGWTServiceImpl extends AbstractGWTServiceImpl
implements Re
resource.setAgent(null);
}
-
- HibernateDetachUtility.nullOutUninitializedFields(result,
- HibernateDetachUtility.SerializationType.SERIALIZATION);
-
- long start = System.currentTimeMillis();
-
ObjectFilter.filterFields(result, importantFieldsSet);
- System.out.println("Took: " + (System.currentTimeMillis() - start)
+ "ms");
-
- return result;
+ return SerialUtility.prepare(result,
"ResourceService.findResourceByCriteria");
} catch (Exception e) {
e.printStackTrace(); //To change body of catch statement use File | Settings
| File Templates.
throw new RuntimeException(e);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
index 3516ecc..a4ae911 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
@@ -20,12 +20,26 @@ package org.rhq.enterprise.gui.coregui.server.gwt;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
+import org.rhq.core.domain.criteria.ResourceGroupCriteria;
+import org.rhq.core.domain.resource.group.ResourceGroup;
+import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGroupGWTService;
-
+import org.rhq.enterprise.gui.coregui.server.util.SerialUtility;
+import org.rhq.enterprise.server.resource.group.ResourceGroupManagerBean;
+import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
+import org.rhq.enterprise.server.util.LookupUtil;
/**
* @author Greg Hinkle
*/
public class ResourceGroupGWTServiceImpl extends AbstractGWTServiceImpl implements
ResourceGroupGWTService {
+
+ private ResourceGroupManagerLocal groupManager =
LookupUtil.getResourceGroupManager();
+
+ public PageList<ResourceGroup>
findResourceGroupsByCriteria(ResourceGroupCriteria criteria) {
+ return
SerialUtility.prepare(groupManager.findResourceGroupsByCriteria(getSessionSubject(),
criteria),
+ "ResourceGroupService.findResourceGroupsByCriteria");
+ }
+
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css
b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css
index 76cd9c5..7211bc6 100644
--- a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css
+++ b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css
@@ -1,11 +1,57 @@
-body {
+/*body {
background-color: white;
color: black;
font-family: Arial, sans-serif;
font-size: small;
margin: 8px;
+}*/
+
+body, p, td, th, option, input, textarea, select {
+ color: #000000;
+ font-family: tahoma, verdana, sans-serif;
+ font-size: 11px;
+}
+
+img {
+ border-style: none;
+}
+
+hr {
+ background-color: #AAAAAA;
+ border: 0 none;
+ color: #AAAAAA;
+ height: 1px;
+ margin-left: 0;
+ margin-right: 0;
+ text-align: center;
+ width: 100%;
}
+a:link {
+ color: #003399;
+ font-weight: bold;
+ text-decoration: none;
+}
+
+a:visited {
+ color: #003399;
+ font-weight: bold;
+ text-decoration: none;
+}
+
+a:hover {
+ color: #003399;
+ font-weight: bold;
+ text-decoration: underline;
+}
+
+.HeaderLabel {
+ font-size: 14pt;
+ font-weight: bold;
+ color: #444444;
+}
+
+
.OddRow {
background-color: white;
border-bottom-color: rgb(230, 234, 239);
@@ -57,7 +103,6 @@ body {
color: black;
}
-z
.BreadCrumb {
font-size: 12pt;
@@ -80,6 +125,15 @@ z
}
+
+.GraphTooltip {
+ background-color:#B5D5FF;
+ font-weight:bold;
+ padding:5px;
+}
+
+
+
.SubTabButton,
.SubTabButtonOver,
.SubTabButtonFocused,
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html
b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html
index f7b8df4..5b78843 100644
--- a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html
+++ b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html
@@ -2,9 +2,13 @@
<head>
<title>RHQ Core Application</title>
<link rel="stylesheet" href="CoreGUI.css">
+ <link rel="icon" type="image/png"
href="/images/favicon.png" />
+ <link rel="apple-touch-icon" href="/images/favicon.png" />
<script type="text/javascript">var isomorphicDir =
"org.rhq.enterprise.gui.coregui.CoreGUI/sc/";
</script>
+
+
</head>
<body>
<script type="text/javascript" language="javascript"
commit b9c3f28dc306938414c71f70776f8b126fed1679
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Feb 26 16:55:07 2010 -0500
Reworked the sort loading from page control to be gwt compatible
Fixed some criteria query using APIs that were not using CriteriaQueryRunner
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/AlertCriteria.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/AlertCriteria.java
index 25aa0d8..057ebdf 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/AlertCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/AlertCriteria.java
@@ -86,6 +86,7 @@ public class AlertCriteria extends Criteria {
filterOverrides.put("groupAlertDefinitionIds",
"alertDefinition.groupAlertDefinition.id IN ( ? )");
sortOverrides.put("name", "alertDefinition.name");
+ sortOverrides.put("resourceId",
"alertDefinition.resource.id");
sortOverrides.put("priority", "alertDefinition.priority");
}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
index 214be85..75c32dc 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
@@ -41,6 +41,7 @@ import java.util.Map;
*/
@XmlAccessorType(XmlAccessType.FIELD)
public abstract class Criteria implements Serializable {
+
public enum Type {
FILTER, FETCH, SORT;
}
@@ -82,6 +83,17 @@ public abstract class Criteria implements Serializable {
public abstract Class getPersistentClass();
+ public Integer getPageNumber() {
+ return pageNumber;
+ }
+
+ public Integer getPageSize() {
+ return pageSize;
+ }
+
+ public List<String> getOrderingFieldNames() {
+ return orderingFieldNames;
+ }
public String getJPQLFilterOverride(String fieldName) {
return filterOverrides.get(fieldName);
@@ -183,39 +195,8 @@ public abstract class Criteria implements Serializable {
this.requiredPermissions = Arrays.asList(requiredPermissions);
}
- public PageControl getPageControl() {
- PageControl pc = null;
-
- if (pageControlOverrides != null) {
- pc = pageControlOverrides;
- } else {
- if (pageNumber == null || pageSize == null) {
- pc = PageControl.getUnlimitedInstance();
- } else {
- pc = new PageControl(pageNumber, pageSize);
- }
- for (String fieldName : orderingFieldNames) {
- /* TODO: GWT
- for (Field sortField : getFields(Type.SORT)) {
- if (sortField.getName().equals(fieldName) == false) {
- continue;
- }
- Object sortFieldValue = null;
- try {
- sortFieldValue = sortField.get(this);
- } catch (IllegalAccessException iae) {
- throw new RuntimeException(iae);
- }
- if (sortFieldValue != null) {
- PageOrdering pageOrdering = (PageOrdering) sortFieldValue;
- pc.addDefaultOrderingField(getCleansedFieldName(sortField, 4),
pageOrdering);
- }
- }
- */
- }
- }
- return pc;
- }
+
+
public String getAlias() {
if (this.alias == null) {
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 472dbb0..b84dea8 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -95,6 +95,7 @@ import org.rhq.enterprise.server.core.AgentManagerLocal;
import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
import org.rhq.enterprise.server.resource.ResourceTypeNotFoundException;
import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
+import org.rhq.enterprise.server.util.CriteriaQueryRunner;
/**
* EJB that handles content subsystem interaction with resources, including content
discovery reports and create/delete
@@ -1435,13 +1436,9 @@ public class ContentManagerBean implements ContentManagerLocal,
ContentManagerRe
"resource", subject.getId());
}
- Query query = generator.getQuery(entityManager);
- Query countQuery = generator.getCountQuery(entityManager);
+ CriteriaQueryRunner<InstalledPackage> queryRunner = new
CriteriaQueryRunner(criteria, generator, entityManager);
- long count = (Long) countQuery.getSingleResult();
- List<InstalledPackage> results = query.getResultList();
-
- return new PageList<InstalledPackage>(results, (int) count,
criteria.getPageControl());
+ return queryRunner.execute();
}
@SuppressWarnings("unchecked")
@@ -1461,13 +1458,9 @@ public class ContentManagerBean implements ContentManagerLocal,
ContentManagerRe
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(criteria);
- Query query = generator.getQuery(entityManager);
- Query countQuery = generator.getCountQuery(entityManager);
-
- long count = (Long) countQuery.getSingleResult();
- List<PackageVersion> results = query.getResultList();
+ CriteriaQueryRunner<PackageVersion> queryRunner = new
CriteriaQueryRunner(criteria, generator, entityManager);
- return new PageList<PackageVersion>(results, (int) count,
criteria.getPageControl());
+ return queryRunner.execute();
}
public InstalledPackage getBackingPackageForResource(Subject subject, int resourceId)
{
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerBean.java
index dca0b68..e16edc4 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerBean.java
@@ -773,13 +773,9 @@ public class RepoManagerBean implements RepoManagerLocal,
RepoManagerRemote {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(criteria);
- Query query = generator.getQuery(entityManager);
- Query countQuery = generator.getCountQuery(entityManager);
-
- long count = (Long) countQuery.getSingleResult();
- List<PackageVersion> packageVersions = query.getResultList();
-
- return new PageList<PackageVersion>(packageVersions, (int) count,
criteria.getPageControl());
+ CriteriaQueryRunner<PackageVersion> queryRunner = new
CriteriaQueryRunner(criteria, generator, entityManager);
+
+ return queryRunner.execute();
}
@RequiredPermission(Permission.MANAGE_INVENTORY)
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
index 7d88f60..033417f 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
@@ -252,7 +252,7 @@ public final class CriteriaQueryGenerator {
PageControl pc = criteria.getPageControlOverrides();
if (pc == null) {
overridden = false;
- pc = criteria.getPageControl();
+ pc = getPageControl(criteria);
}
boolean first = true;
@@ -264,19 +264,17 @@ public final class CriteriaQueryGenerator {
results.append(", ");
}
- if (overridden) {
- String fieldName = orderingField.getField();
- PageOrdering ordering = orderingField.getOrdering();
-
- results.append(fieldName).append(' ').append(ordering);
+ String fieldName = orderingField.getField();
+ String override = criteria.getJPQLSortOverride(fieldName);
+ if (override == null) {
+ override = alias + "." + fieldName;
} else {
- String fieldName = orderingField.getField();
- String override = criteria.getJPQLSortOverride(fieldName);
- String fragment = override != null ? override : fieldName;
-
- results.append(alias).append('.').append(fragment);
- results.append(' ').append(orderingField.getOrdering());
+ override = alias + "." + override;
}
+
+ PageOrdering ordering = orderingField.getOrdering();
+
+ results.append(override).append(' ').append(ordering);
}
}
results.append(NL);
@@ -309,7 +307,7 @@ public final class CriteriaQueryGenerator {
}
- private List<Field> getFields(Criteria criteria, Criteria.Type fieldType) {
+ private static List<Field> getFields(Criteria criteria, Criteria.Type
fieldType) {
String prefix = fieldType.name().toLowerCase();
List<Field> results = new ArrayList<Field>();
@@ -327,7 +325,7 @@ public final class CriteriaQueryGenerator {
return results;
}
- public String getCleansedFieldName(Field field, int leadingCharsToStrip) {
+ public static String getCleansedFieldName(Field field, int leadingCharsToStrip) {
String fieldNameFragment = field.getName().substring(leadingCharsToStrip);
String fieldName = Character.toLowerCase(fieldNameFragment.charAt(0)) +
fieldNameFragment.substring(1);
return fieldName;
@@ -402,7 +400,7 @@ public final class CriteriaQueryGenerator {
String queryString = getQueryString(false);
Query query = em.createQuery(queryString);
setBindValues(query, false);
- PersistenceUtility.setDataPage(query, criteria.getPageControl());
+ PersistenceUtility.setDataPage(query, getPageControl(criteria));
return query;
}
@@ -514,4 +512,37 @@ public final class CriteriaQueryGenerator {
generator.getQueryString(false);
generator.getQueryString(true);
}
+
+
+ public static PageControl getPageControl(Criteria criteria) {
+ PageControl pc = null;
+
+ if (criteria.getPageControlOverrides() != null) {
+ pc = criteria.getPageControlOverrides();
+ } else {
+ if (criteria.getPageNumber() == null || criteria.getPageSize() == null) {
+ pc = PageControl.getUnlimitedInstance();
+ } else {
+ pc = new PageControl(criteria.getPageNumber(), criteria.getPageSize());
+ }
+ for (String fieldName : criteria.getOrderingFieldNames()) {
+ for (Field sortField : getFields(criteria, Criteria.Type.SORT)) {
+ if (sortField.getName().equals(fieldName) == false) {
+ continue;
+ }
+ Object sortFieldValue = null;
+ try {
+ sortFieldValue = sortField.get(criteria);
+ } catch (IllegalAccessException iae) {
+ throw new RuntimeException(iae);
+ }
+ if (sortFieldValue != null) {
+ PageOrdering pageOrdering = (PageOrdering) sortFieldValue;
+ pc.addDefaultOrderingField(getCleansedFieldName(sortField, 4),
pageOrdering);
+ }
+ }
+ }
+ }
+ return pc;
+ }
}
\ No newline at end of file
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryRunner.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryRunner.java
index 12099c8..dad2707 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryRunner.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryRunner.java
@@ -57,7 +57,7 @@ public class CriteriaQueryRunner<T> {
initAllPersistentBags(results);
}
- return new PageList<T>(results, (int) count, criteria.getPageControl());
+ return new PageList<T>(results, (int) count,
CriteriaQueryGenerator.getPageControl(criteria));
}
private void initAllPersistentBags(List<T> entities) {
commit ca17f94f2925b49a50a48d8112be8eab8407b43d
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Feb 26 16:52:53 2010 -0500
Moved the generated files out so they don't intefere with scm
Got rid of the unneeded smartgwt deps
removed extraneous gwt files
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index 0564164..b47cad8 100644
--- a/modules/core/domain/pom.xml
+++ b/modules/core/domain/pom.xml
@@ -215,11 +215,11 @@
<scope>provided</scope>
</dependency>
- <dependency>
+ <!--<dependency>
<groupId>com.smartgwt</groupId>
<artifactId>smartgwt</artifactId>
<version>2.0</version>
- </dependency>
+ </dependency>-->
</dependencies>
@@ -251,14 +251,20 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
- <version>1.2.0-11137</version>
+ <version>1.2</version>
+
<configuration>
- <inplace>true</inplace>
- <logLevel>DEBUG</logLevel>
- <runTarget>RHQDomain.html</runTarget>
- <warSourceDirectory>war</warSourceDirectory>
+ <noServer>true</noServer>
+ <inplace>false</inplace>
+ <logLevel>INFO</logLevel>
<extraJvmArgs>-Xmx512m</extraJvmArgs>
+ <localWorkers>2</localWorkers>
+ <draftCompile>true</draftCompile>
+
<buildOutputDirectory>target/gwtclasses</buildOutputDirectory>
+ <hostedWebapp>target/hostedwar</hostedWebapp>
+ <debugSuspend>false</debugSuspend>
</configuration>
+
<executions>
<execution>
<goals>
@@ -414,4 +420,18 @@
</profiles>
+
+ <repositories>
+ <repository>
+ <id>codehaus</id>
+ <name>codehaus</name>
+ <
url>http://repository.codehaus.org/</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+
+
+
</project>
diff --git a/modules/core/domain/src/main/java/org/rhq/core/RHQDomain.gwt.xml
b/modules/core/domain/src/main/java/org/rhq/core/RHQDomain.gwt.xml
index 634ac86..a9a94a9 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/RHQDomain.gwt.xml
+++ b/modules/core/domain/src/main/java/org/rhq/core/RHQDomain.gwt.xml
@@ -3,7 +3,6 @@
<module>
<inherits name='com.google.gwt.user.User'/>
- <inherits name='com.smartgwt.SmartGwt' />
<entry-point class='org.rhq.core.client.RHQDomain'/>
@@ -11,9 +10,9 @@
<source path="domain"/>
- <generate-with class="org.rhq.core.rebind.RecordBuilderGenerator">
+ <!--<generate-with
class="org.rhq.core.rebind.RecordBuilderGenerator">
<when-type-assignable
class="org.rhq.core.domain.util.Recordizable"/>
- </generate-with>
+ </generate-with>-->
</module>
\ No newline at end of file
diff --git a/modules/core/domain/war/org.rhq.core.RHQDomain/RHQDomain.css
b/modules/core/domain/war/org.rhq.core.RHQDomain/RHQDomain.css
deleted file mode 100644
index a111f82..0000000
--- a/modules/core/domain/war/org.rhq.core.RHQDomain/RHQDomain.css
+++ /dev/null
@@ -1,7 +0,0 @@
-body {
- background-color: white;
- color: black;
- font-family: Arial, sans-serif;
- font-size: small;
- margin: 8px;
-}
diff --git a/modules/core/domain/war/org.rhq.core.RHQDomain/RHQDomain.html
b/modules/core/domain/war/org.rhq.core.RHQDomain/RHQDomain.html
deleted file mode 100644
index 3878eb5..0000000
--- a/modules/core/domain/war/org.rhq.core.RHQDomain/RHQDomain.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<html>
-<head>
- <title>RHQDomain Application</title>
- <link rel="stylesheet" href="RHQDomain.css">
-</head>
-<body>
-<script type="text/javascript" language="javascript"
src="org.rhq.core.RHQDomain.nocache.js"></script>
-<h1>RHQDomain Application</h1>
-</body>
-</html>
diff --git a/modules/core/domain/war/org.rhq.core.RHQDomain/clear.cache.gif
b/modules/core/domain/war/org.rhq.core.RHQDomain/clear.cache.gif
deleted file mode 100644
index e565824..0000000
Binary files a/modules/core/domain/war/org.rhq.core.RHQDomain/clear.cache.gif and
/dev/null differ
diff --git a/modules/core/domain/war/org.rhq.core.RHQDomain/hosted.html
b/modules/core/domain/war/org.rhq.core.RHQDomain/hosted.html
deleted file mode 100644
index e8983af..0000000
--- a/modules/core/domain/war/org.rhq.core.RHQDomain/hosted.html
+++ /dev/null
@@ -1,333 +0,0 @@
-<html>
-<head><script>
-var $wnd = parent;
-var $doc = $wnd.document;
-var $moduleName, $moduleBase, $entry
-,$stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent(a);} : null
-,$sessionId = $wnd.__gwtStatsSessionId ? $wnd.__gwtStatsSessionId : null;
-// Lightweight metrics
-if ($stats) {
- var moduleFuncName = location.search.substr(1);
- var moduleFunc = $wnd[moduleFuncName];
- var moduleName = moduleFunc ? moduleFunc.moduleName : "unknown";
-
$stats({moduleName:moduleName,sessionId:$sessionId,subSystem:'startup',evtGroup:'moduleStartup',millis:(new
Date()).getTime(),type:'moduleEvalStart'});
-}
-var $hostedHtmlVersion="2.0";
-
-var gwtOnLoad;
-var $hosted = "localhost:9997";
-
-function loadIframe(url) {
- var topDoc = window.top.document;
-
- // create an iframe
- var iframeDiv = topDoc.createElement("div");
- iframeDiv.innerHTML = "<iframe scrolling=no frameborder=0 src='" + url
+ "'>";
- var iframe = iframeDiv.firstChild;
-
- // mess with the iframe style a little
- var iframeStyle = iframe.style;
- iframeStyle.position = "absolute";
- iframeStyle.borderWidth = "0";
- iframeStyle.left = "0";
- iframeStyle.top = "0";
- iframeStyle.width = "100%";
- iframeStyle.backgroundColor = "#ffffff";
- iframeStyle.zIndex = "1";
- iframeStyle.height = "100%";
-
- // update the top window's document's body's style
- var hostBodyStyle = window.top.document.body.style;
- hostBodyStyle.margin = "0";
- hostBodyStyle.height = iframeStyle.height;
- hostBodyStyle.overflow = "hidden";
-
- // insert the iframe
- topDoc.body.insertBefore(iframe, topDoc.body.firstChild);
-}
-
-var ua = navigator.userAgent.toLowerCase();
-if (ua.indexOf("gecko") != -1) {
- // install eval wrapper on FF to avoid EvalError problem
- var __eval = window.eval;
- window.eval = function(s) {
- return __eval(s);
- }
-}
-if (ua.indexOf("chrome") != -1) {
- // work around __gwt_ObjectId appearing in JS objects
- var hop = Object.prototype.hasOwnProperty;
- Object.prototype.hasOwnProperty = function(prop) {
- return prop != "__gwt_ObjectId" && hop.call(this, prop);
- };
-}
-
-// wrapper to call JS methods, which we need both to be able to supply a
-// different this for method lookup and to get the exception back
-function __gwt_jsInvoke(thisObj, methodName) {
- try {
- var args = Array.prototype.slice.call(arguments, 2);
- return [0, window[methodName].apply(thisObj, args)];
- } catch (e) {
- return [1, e];
- }
-}
-
-var __gwt_javaInvokes = [];
-function __gwt_makeJavaInvoke(argCount) {
- return __gwt_javaInvokes[argCount] || __gwt_doMakeJavaInvoke(argCount);
-}
-
-function __gwt_doMakeJavaInvoke(argCount) {
- // IE6 won't eval() anonymous functions except as r-values
- var argList = "";
- for (var i = 0; i < argCount; i++) {
- argList += ",p" + i;
- }
- var argListNoComma = argList.substring(1);
-
- return eval(
- "__gwt_javaInvokes[" + argCount + "] =\n" +
- " function(thisObj, dispId" + argList + ") {\n" +
- " var result = __static(dispId, thisObj" + argList + ");\n" +
- " if (result[0]) {\n" +
- " throw result[1];\n" +
- " } else {\n" +
- " return result[1];\n" +
- " }\n" +
- " }\n"
- );
-}
-
-/*
- * This is used to create tear-offs of Java methods. Each function corresponds
- * to exactly one dispId, and also embeds the argument count. We get the
"this"
- * value from the context in which the function is being executed.
- * Function-object identity is preserved by caching in a sparse array.
- */
-var __gwt_tearOffs = [];
-var __gwt_tearOffGenerators = [];
-function __gwt_makeTearOff(proxy, dispId, argCount) {
- return __gwt_tearOffs[dispId] || __gwt_doMakeTearOff(dispId, argCount);
-}
-
-function __gwt_doMakeTearOff(dispId, argCount) {
- return __gwt_tearOffs[dispId] =
- (__gwt_tearOffGenerators[argCount] ||
__gwt_doMakeTearOffGenerator(argCount))(dispId);
-}
-
-function __gwt_doMakeTearOffGenerator(argCount) {
- // IE6 won't eval() anonymous functions except as r-values
- var argList = "";
- for (var i = 0; i < argCount; i++) {
- argList += ",p" + i;
- }
- var argListNoComma = argList.substring(1);
-
- return eval(
- "__gwt_tearOffGenerators[" + argCount + "] =\n" +
- " function(dispId) {\n" +
- " return function(" + argListNoComma + ") {\n" +
- " var result = __static(dispId, this" + argList + ");\n" +
- " if (result[0]) {\n" +
- " throw result[1];\n" +
- " } else {\n" +
- " return result[1];\n" +
- " }\n" +
- " }\n" +
- " }\n"
- );
-}
-
-function __gwt_makeResult(isException, result) {
- return [isException, result];
-}
-
-function __gwt_disconnected() {
- // Prevent double-invocation.
- window.__gwt_disconnected = new Function();
- // Do it in a timeout so we can be sure we have a clean stack.
- window.setTimeout(__gwt_disconnected_impl, 1);
-}
-
-function __gwt_disconnected_impl() {
- var topWin = window.top;
- var topDoc = topWin.document;
- var outer = topDoc.createElement("div");
- // Do not insert whitespace or outer.firstChild will get a text node.
- outer.innerHTML =
- '<div
style="position:absolute;z-index:2147483646;left:0px;top:0px;right:0px;bottom:0px;filter:alpha(opacity=75);opacity:0.75;background-color:#000000;"></div>'
+
- '<div
style="position:absolute;z-index:2147483647;left:50px;top:50px;width:600px;color:#FFFFFF;font-family:verdana;">'
+
- '<div style="font-size:30px;font-weight:bold;">GWT Code Server
Disconnected</div>' +
- '<p style="font-size:15px;"> Most likely, you closed GWT
development mode. Or you might have lost network connectivity. To fix this, try restarting
GWT Development Mode and <a style="color: #FFFFFF; font-weight: bold;"
href="javascript:location.reload()">REFRESH</a> this
page.</p>' +
- '</div>'
- ;
- topDoc.body.appendChild(outer);
- var glass = outer.firstChild;
- var glassStyle = glass.style;
-
- // Scroll to the top and remove scrollbars.
- topWin.scrollTo(0, 0);
- if (topDoc.compatMode == "BackCompat") {
- topDoc.body.style["overflow"] = "hidden";
- } else {
- topDoc.documentElement.style["overflow"] = "hidden";
- }
-
- // Steal focus.
- glass.focus();
-
- if ((navigator.userAgent.indexOf("MSIE") >= 0) &&
(topDoc.compatMode == "BackCompat")) {
- // IE quirks mode doesn't support right/bottom, but does support this.
- glassStyle.width = "125%";
- glassStyle.height = "100%";
- } else if (navigator.userAgent.indexOf("MSIE 6") >= 0) {
- // IE6 doesn't have a real standards mode, so we have to use hacks.
- glassStyle.width = "125%"; // Get past scroll bar area.
- // Nasty CSS; onresize would be better but the outer window won't let us add a
listener IE.
- glassStyle.setExpression("height",
"document.documentElement.clientHeight");
- }
-}
-
-function findPluginObject() {
- try {
- return document.getElementById('pluginObject');
- } catch (e) {
- return null;
- }
-}
-
-function findPluginEmbed() {
- try {
- return document.getElementById('pluginEmbed')
- } catch (e) {
- return null;
- }
-}
-
-function findPluginXPCOM() {
- try {
- return __gwt_HostedModePlugin;
- } catch (e) {
- return null;
- }
-}
-
-gwtOnLoad = function(errFn, modName, modBase){
- $moduleName = modName;
- $moduleBase = modBase;
-
- // Note that the order is important
- var pluginFinders = [
- findPluginXPCOM,
- findPluginObject,
- findPluginEmbed,
- ];
- var topWin = window.top;
- var url = topWin.location.href;
- if (!topWin.__gwt_SessionID) {
- var ASCII_EXCLAMATION = 33;
- var ASCII_TILDE = 126;
- var chars = [];
- for (var i = 0; i < 16; ++i) {
- chars.push(Math.floor(ASCII_EXCLAMATION
- + Math.random() * (ASCII_TILDE - ASCII_EXCLAMATION + 1)));
- }
- topWin.__gwt_SessionID = String.fromCharCode.apply(null, chars);
- }
- var plugin = null;
- for (var i = 0; i < pluginFinders.length; ++i) {
- try {
- var maybePlugin = pluginFinders[i]();
- if (maybePlugin != null && maybePlugin.init(window)) {
- plugin = maybePlugin;
- break;
- }
- } catch (e) {
- }
- }
- if (!plugin) {
- // try searching for a v1 plugin for backwards compatibility
- var found = false;
- for (var i = 0; i < pluginFinders.length; ++i) {
- try {
- plugin = pluginFinders[i]();
- if (plugin != null && plugin.connect($hosted, $moduleName, window)) {
- return;
- }
- } catch (e) {
- }
- }
-
loadIframe("http://gwt.google.com/missing-plugin");
- } else {
- if (plugin.connect(url, topWin.__gwt_SessionID, $hosted, $moduleName,
- $hostedHtmlVersion)) {
- window.onUnload = function() {
- try {
- // wrap in try/catch since plugins are not required to supply this
- plugin.disconnect();
- } catch (e) {
- }
- };
- } else {
- if (errFn) {
- errFn(modName);
- } else {
- alert("Plugin failed to connect to hosted mode server at " + $hosted);
-
loadIframe("http://code.google.com/p/google-web-toolkit/wiki/Trouble...;
- }
- }
- }
-}
-
-window.onunload = function() {
-};
-
-// Lightweight metrics
-window.fireOnModuleLoadStart = function(className) {
- $stats && $stats({moduleName:$moduleName, sessionId:$sessionId,
subSystem:'startup', evtGroup:'moduleStartup', millis:(new
Date()).getTime(), type:'onModuleLoadStart', className:className});
-};
-
-window.__gwt_module_id = 0;
-</script></head>
-<body>
-<font face='arial' size='-1'>This html file is for hosted mode
support.</font>
-<script><!--
-// Lightweight metrics
-$stats && $stats({moduleName:$moduleName, sessionId:$sessionId,
subSystem:'startup', evtGroup:'moduleStartup', millis:(new
Date()).getTime(), type:'moduleEvalEnd'});
-
-// OOPHM currently only supports IFrameLinker
-var query = parent.location.search;
-if (!findPluginXPCOM()) {
- document.write('<embed id="pluginEmbed"
type="application/x-gwt-hosted-mode" width="10"
height="10">');
- document.write('</embed>');
- document.write('<object id="pluginObject"
CLASSID="CLSID:1D6156B6-002B-49E7-B5CA-C138FB843B4E">');
- document.write('</object>');
-}
-
-// look for the old query parameter if we don't find the new one
-var idx = query.indexOf("gwt.codesvr=");
-if (idx >= 0) {
- idx += 12; // "gwt.codesvr=".length() == 12
-} else {
- idx = query.indexOf("gwt.hosted=");
- if (idx >= 0) {
- idx += 11; // "gwt.hosted=".length() == 11
- }
-}
-if (idx >= 0) {
- var amp = query.indexOf("&", idx);
- if (amp >= 0) {
- $hosted = query.substring(idx, amp);
- } else {
- $hosted = query.substring(idx);
- }
-
- // According to RFC 3986, some of this component's characters (e.g., ':')
- // are reserved and *may* be escaped.
- $hosted = decodeURIComponent($hosted);
-}
-
-query = window.location.search.substring(1);
-if (query && $wnd[query]) setTimeout($wnd[query].onScriptLoad, 1);
---></script></body></html>