Package org.drools.guvnor.client.admin

Source Code of org.drools.guvnor.client.admin.ArchivedAssetManager

package org.drools.guvnor.client.admin;

import org.drools.guvnor.client.common.GenericCallback;
import org.drools.guvnor.client.common.PrettyFormLayout;
import org.drools.guvnor.client.explorer.ExplorerViewCenterPanel;
import org.drools.guvnor.client.rpc.PackageConfigData;
import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
import org.drools.guvnor.client.rpc.ValidatedResponse;
import org.drools.guvnor.client.ruleeditor.MultiViewRow;
import org.drools.guvnor.client.rulelist.AssetItemGrid;
import org.drools.guvnor.client.rulelist.AssetItemGridDataLoader;
import org.drools.guvnor.client.rulelist.EditItemEvent;
import org.drools.guvnor.client.messages.Constants;

import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.core.client.GWT;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.Toolbar;
import com.gwtext.client.widgets.ToolbarButton;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;

/**
* @author Fernando Meyer
*/

public class ArchivedAssetManager extends Composite {


  private AssetItemGrid grid;
  private ListBox packages = new ListBox(true);
    private Constants constants = GWT.create(Constants.class);

    public ArchivedAssetManager(final ExplorerViewCenterPanel tab) {


        PrettyFormLayout pf = new PrettyFormLayout();

        VerticalPanel header = new VerticalPanel();
        header.add(new HTML(constants.ArchivedItems()));

        pf.addHeader("images/backup_large.png", header); //NON-NLS




        EditItemEvent edit = new EditItemEvent () {
            public void open(String key) {
              tab.openAsset(key);
            }

            public void open(MultiViewRow[] rows) {
                for ( MultiViewRow row : rows ) {
                    tab.openAsset( row.uuid );
                }
            }
        };
        grid = new AssetItemGrid(edit, AssetItemGrid.ARCHIVED_RULE_LIST_TABLE_ID, new AssetItemGridDataLoader() {
      public void loadData(int startRow, int numberOfRows,
          GenericCallback cb) {
        RepositoryServiceFactory.getService().loadArchivedAssets(startRow, numberOfRows, cb);
      }
        });


        loadPackages();
        Toolbar tb = new Toolbar();
        final ToolbarButton restorePackage = new ToolbarButton();
        restorePackage.addListener(new ButtonListenerAdapter() {
              public void onClick(
                  com.gwtext.client.widgets.Button button,
                  EventObject e) {
                restorePackage(packages.getValue(packages.getSelectedIndex()));
              }

            });
        restorePackage.setText(constants.RestoreSelectedPackage());
        tb.addButton(restorePackage);




        final ToolbarButton delPackage = new ToolbarButton();
        delPackage.setText(constants.PermanentlyDeletePackage());
        delPackage.addListener(new ButtonListenerAdapter() {
              public void onClick(
                  com.gwtext.client.widgets.Button button,
                  EventObject e) {
                if (Window.confirm(constants.AreYouSurePackageDelete())) {
                  deletePackage(packages.getValue(packages.getSelectedIndex()));
                }
              }
        });
        tb.addButton(delPackage);



        pf.startSection(constants.ArchivedPackagesList());

        pf.addRow(tb);
        pf.addRow(packages);


        pf.endSection();

        tb = new Toolbar();
        final ToolbarButton restoreAsset = new ToolbarButton();
        restoreAsset.setText(constants.RestoreSelectedAsset());
        tb.addButton(restoreAsset);
        restoreAsset.addListener(new ButtonListenerAdapter() {
              public void onClick(com.gwtext.client.widgets.Button button, EventObject e) {
                      if (grid.getSelectedRowUUIDs() == null) {
                        Window.alert(constants.PleaseSelectAnItemToRestore());
                        return;
                      }
                        RepositoryServiceFactory.getService().archiveAssets( grid.getSelectedRowUUIDs(), false, new GenericCallback() {
                            public void onSuccess(Object arg0) {
                                Window.alert(constants.ItemRestored());
                                grid.refreshGrid();
                            }
                        });
              };
        });


        final ToolbarButton deleteAsset = new ToolbarButton();
        deleteAsset.setText(constants.DeleteSelectedAsset());
        tb.addButton(deleteAsset);

        deleteAsset.addListener(
            new ButtonListenerAdapter() {
              public void onClick(
                  com.gwtext.client.widgets.Button button,
                  EventObject e) {
                      if (grid.getSelectedRowUUIDs() == null) {
                        Window.alert(constants.PleaseSelectAnItemToPermanentlyDelete());
                        return;
                      }
                      if (!Window.confirm(constants.AreYouSureDeletingAsset())) {
                        return;
                      }
                        RepositoryServiceFactory.getService().removeAssets( grid.getSelectedRowUUIDs(), new GenericCallback() {

                            public void onSuccess(Object arg0) {
                                Window.alert(constants.ItemDeleted());
                                grid.refreshGrid();
                            }
                        });
              }
            });

        pf.startSection(constants.ArchivedAssets());
        pf.addRow(tb);

        pf.addRow(grid);

        pf.endSection();


        initWidget( pf );
    }


  private void deletePackage(final String uuid) {
    RepositoryServiceFactory.getService().removePackage(uuid, new GenericCallback( ) {
      public void onSuccess(Object data) {
        Window.alert(constants.PackageDeleted());
        packages.clear();
        loadPackages();
      }
    });
  }


  private void restorePackage(String uuid) {
    RepositoryServiceFactory.getService().loadPackageConfig(uuid, new GenericCallback<PackageConfigData>() {
      public void onSuccess(PackageConfigData cf) {
        cf.archived = false;
        RepositoryServiceFactory.getService().savePackage(cf, new GenericCallback<ValidatedResponse>() {
          public void onSuccess(ValidatedResponse data) {
            Window.alert(constants.PackageRestored());
            packages.clear();
            loadPackages();
          }
        });
      }
    });
  }



    private ListBox loadPackages() {

      RepositoryServiceFactory.getService().listArchivedPackages(new GenericCallback<PackageConfigData[]>() {
      public void onSuccess(PackageConfigData[] configs) {
        for (int i = 0; i < configs.length; i++) {
            packages.addItem(configs[i].name, configs[i].uuid);
        }
        if (configs.length == 0) {
          packages.addItem(constants.noArchivedPackages());
        }
      }
      });


    return packages;
  }



}
TOP

Related Classes of org.drools.guvnor.client.admin.ArchivedAssetManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.