001: package org.drools.brms.client.admin;
002:
003: import org.drools.brms.client.common.FormStyleLayout;
004: import org.drools.brms.client.common.GenericCallback;
005: import org.drools.brms.client.common.LoadingPopup;
006: import org.drools.brms.client.rpc.RepositoryServiceFactory;
007: import org.drools.brms.client.rpc.TableDataResult;
008: import org.drools.brms.client.rulelist.AssetItemListViewer;
009: import org.drools.brms.client.rulelist.EditItemEvent;
010:
011: import com.google.gwt.user.client.Command;
012: import com.google.gwt.user.client.Window;
013: import com.google.gwt.user.client.rpc.AsyncCallback;
014: import com.google.gwt.user.client.ui.Button;
015: import com.google.gwt.user.client.ui.ClickListener;
016: import com.google.gwt.user.client.ui.Composite;
017: import com.google.gwt.user.client.ui.HTML;
018: import com.google.gwt.user.client.ui.HorizontalPanel;
019: import com.google.gwt.user.client.ui.Widget;
020:
021: /**
022: * @author Fernando Meyer
023: */
024:
025: public class ArchivedAssetManager extends Composite {
026:
027: AssetItemListViewer listView;
028: HorizontalPanel layout;
029:
030: public ArchivedAssetManager() {
031:
032: FormStyleLayout widtab = new FormStyleLayout(
033: "images/backup_large.png", "Manage Archived Assets");
034:
035: layout = new HorizontalPanel();
036: layout.setWidth("100%");
037:
038: widtab.addRow(layout);
039:
040: listView = new AssetItemListViewer(new EditItemEvent() {
041: public void open(String key) {
042: }
043: }, AssetItemListViewer.ARCHIVED_RULE_LIST_TABLE_ID);
044:
045: listView.setRefreshCommand(showArchivedAssets());
046:
047: layout.add(listView);
048:
049: showArchivedAssets().execute();
050: widtab.addRow(new HTML("<hr/>"));
051: widtab.addRow(newButtonsActionWiget());
052: initWidget(widtab);
053: }
054:
055: private Widget newButtonsActionWiget() {
056:
057: HorizontalPanel horiz = new HorizontalPanel();
058:
059: Button refresh = new Button("Refresh");
060: refresh.addClickListener(new ClickListener() {
061: public void onClick(Widget w) {
062: showArchivedAssets().execute();
063: }
064: });
065:
066: Button unarchive = new Button("Unarchive");
067: unarchive.addClickListener(new ClickListener() {
068: public void onClick(Widget w) {
069:
070: RepositoryServiceFactory.getService().archiveAsset(
071: listView.getSelectedElementUUID(), false,
072: new AsyncCallback() {
073:
074: public void onFailure(Throwable arg0) {
075: Window.alert("Fail");
076: }
077:
078: public void onSuccess(Object arg0) {
079: showArchivedAssets().execute();
080: Window.alert("Done!");
081: }
082: });
083: }
084: });
085:
086: Button deleteperm = new Button("Delete");
087: deleteperm.addClickListener(new ClickListener() {
088: public void onClick(Widget w) {
089: RepositoryServiceFactory.getService().removeAsset(
090: listView.getSelectedElementUUID(),
091: new AsyncCallback() {
092:
093: public void onFailure(Throwable arg0) {
094: Window.alert("Fail");
095: }
096:
097: public void onSuccess(Object arg0) {
098: showArchivedAssets().execute();
099: Window.alert("Done!");
100:
101: }
102: });
103: }
104: });
105:
106: horiz.add(refresh);
107: horiz.add(unarchive);
108: horiz.add(deleteperm);
109: return horiz;
110: }
111:
112: private Command showArchivedAssets() {
113:
114: final GenericCallback cb = new GenericCallback() {
115: public void onSuccess(Object data) {
116: final TableDataResult table = (TableDataResult) data;
117: listView.loadTableData(table);
118: listView.setWidth("100%");
119: LoadingPopup.close();
120: }
121: };
122:
123: return new Command() {
124: public void execute() {
125: LoadingPopup
126: .showMessage("Loading list, please wait...");
127: RepositoryServiceFactory.getService()
128: .loadArchivedAssets(cb);
129: }
130: };
131: }
132: }
|