Example usage for com.google.gwt.view.client MultiSelectionModel MultiSelectionModel

List of usage examples for com.google.gwt.view.client MultiSelectionModel MultiSelectionModel

Introduction

In this page you can find the example usage for com.google.gwt.view.client MultiSelectionModel MultiSelectionModel.

Prototype

public MultiSelectionModel() 

Source Link

Document

Constructs a MultiSelectionModel without a key provider.

Usage

From source file:client.ui.views.series.TableSeriesView.java

License:Open Source License

@Override
public void onUpdate(List<SeriesManager.Row> rows, SortedSet<Integer> years, SeriesManager.Ordering ordering) {

    super.onUpdate(rows, years, ordering);

    table = new Table(rows.size());

    container.clear();/* w w w  .j  a  v  a 2 s .  com*/
    container.add(table);

    table.addColumn(CountryNameColumn.get(), CountryNameColumn.HEADER);

    for (Integer year : years) {
        table.addColumn(YearColumn.get(year), year.toString());
    }

    table.addColumnSortHandler(this);

    updateColumnSortList(table.getColumnSortList(), ordering);

    ListDataProvider<SeriesManager.Row> provider = new ListDataProvider<SeriesManager.Row>();

    provider.addDataDisplay(table);
    provider.setList(rows);

    selectionModel = new MultiSelectionModel<SeriesManager.Row>();
    table.setSelectionModel(selectionModel, null);

    for (SeriesManager.Row row : rows) {
        selectionModel.setSelected(row, row.isSelected());
    }
}

From source file:com.chinarewards.gwt.license.client.user.view.UserSearchWidget.java

private void buildTable() {

    resultTable = new ListCellTable<UserVo>();
    resultTable.setWidth(ViewConstants.page_width);
    resultTable.setPageSize(ViewConstants.per_page_number);
    pager = new EltNewPager(TextLocation.CENTER);
    pager.setDisplay(resultTable);//from  w w  w.  j a  v a2s  . c  o  m
    MultiSelectionModel<UserVo> selectionModel = new MultiSelectionModel<UserVo>();
    resultTable.setSelectionModel(selectionModel);
    initTableColumns(selectionModel);
    resultTable.setRowCount(0);
    result.clear();
    resultpage.clear();
    result.add(resultTable);
    resultpage.add(pager);

}

From source file:com.gsr.myschool.front.client.web.application.inbox.InboxView.java

License:Apache License

@Inject
public InboxView(final Binder uiBinder, final SharedMessageBundle sharedMessageBundle,
        final InboxCellFactory inboxCellFactory, final InboxListStyle listStyle) {
    this.dataProvider = new ListDataProvider<InboxProxy>();
    this.multipleSelectionModel = new MultiSelectionModel<InboxProxy>();
    this.inboxTable = new CellList<InboxProxy>(inboxCellFactory.create(setupShowDetails()), listStyle);

    initWidget(uiBinder.createAndBindUi(this));

    dataProvider.addDataDisplay(inboxTable);
    inboxTable.setSelectionModel(multipleSelectionModel);
    inboxTable.setEmptyListWidget(new EmptyResult(sharedMessageBundle.noResultFound(), AlertType.WARNING));
}

From source file:com.qualogy.qafe.gwt.client.component.improved.QCellTable.java

License:Apache License

public QCellTable(DataGridGVO gvo, String uuid, String parent) {
    setSize(gvo.getWidth(), gvo.getHeight());
    String context = gvo.getContext();
    String window = gvo.getWindow();
    String component = gvo.getId();

    Column<DataContainerGVO, String>[] columns = null;

    if (gvo != null) {
        if (gvo.getColumns() != null) {
            int gvoColSize = gvo.getColumns().length;
            columns = new Column[gvoColSize];
            for (int i = 0; i < gvoColSize; i++) {
                final String columnName = gvo.getColumns()[i].getFieldName();
                String contentType = gvo.getColumns()[i].getContent();
                if (CONTENT_STRING.equals(contentType)) {

                    if (gvo.getColumns()[i].getComponent() != null) {
                        ComponentGVO c = gvo.getColumns()[i].getComponent();
                        if (c instanceof ButtonGVO) {
                            ButtonGVO bc = (ButtonGVO) c;
                            columns[i] = new QButtonColumn<DataContainerGVO>(uuid, context, window, component,
                                    gvo.getColumns()[i].getId(), parent, gvo.getColumns()[i].getTooltip(),
                                    gvo.getColumns()[i], bc) {
                                @Override
                                public String getValue(DataContainerGVO map) {
                                    return map.getDataMap().get(columnName) != null
                                            ? map.getDataMap().get(columnName).toString()
                                            : null;
                                }/*  w  w  w . ja  v  a 2 s  . c  o m*/
                            };
                        }

                    } else {
                        columns[i] = new TextColumn<DataContainerGVO>() {
                            @Override
                            public String getValue(DataContainerGVO map) {
                                return map.getDataMap().get(columnName) != null
                                        ? map.getDataMap().get(columnName).toString()
                                        : null;
                            }
                        };
                    }
                } else if (CONTENT_LINK.equals(contentType)) {
                    columns[i] = new LinkColumn<DataContainerGVO>(uuid, context, window, component,
                            gvo.getColumns()[i].getId(), parent, gvo.getColumns()[i].getTooltip(),
                            gvo.getColumns()[i]) {
                        @Override
                        public String getValue(DataContainerGVO map) {
                            return map.getDataMap().get(columnName) != null
                                    ? map.getDataMap().get(columnName).toString()
                                    : null;
                        }
                    };
                }

                if (columns[i] != null) {
                    if (gvo.getColumns()[i].getSortable() != null
                            && gvo.getColumns()[i].getSortable().booleanValue()) {
                        //columns[i].

                    }
                    addColumn(columns[i], gvo.getColumns()[i].getDisplayname());
                }

            }
        }
        ListDataProvider<DataContainerGVO> adapter = new ListDataProvider<DataContainerGVO>();
        list = adapter.getList();
        if (gvo.getPageSize() != null) {
            if (gvo.getPageSize() > 0) {
                setPageSize(gvo.getPageSize());
            }
        }

        SelectionModel<DataContainerGVO> selectionModel = null;

        if (gvo.getMultipleSelect() != null && gvo.getMultipleSelect().booleanValue()) {
            selectionModel = new MultiSelectionModel<DataContainerGVO>();
        } else {
            selectionModel = new SingleSelectionModel<DataContainerGVO>();
        }
        setSelectionModel(selectionModel);
        adapter.addDataDisplay(this);
        setPageStart(0);

    }
}

From source file:cz.muni.fi.pa165.methanolmanager.frontend.client.bottles.BottlesView.java

private void initBottlesTable() {
    bottlesTable.addColumn(new TextColumn<BottleDto>() {
        @Override/*from  w  ww  .j a  v  a2s .  c  om*/
        public String getValue(BottleDto bottle) {
            return bottle.getId().toString();
        }
    }, new TextHeader(applicationConstants.id()));
    bottlesTable.addColumn(new TextColumn<BottleDto>() {
        @Override
        public String getValue(BottleDto bottle) {
            return bottle.getName();
        }
    }, new TextHeader(applicationConstants.name()));
    bottlesTable.addColumn(new TextColumn<BottleDto>() {
        @Override
        public String getValue(BottleDto bottle) {
            return bottle.getStoreName();
        }
    }, new TextHeader(applicationConstants.storeName()));
    bottlesTable.addColumn(new TextColumn<BottleDto>() {
        @Override
        public String getValue(BottleDto bottle) {
            return bottle.getMakeName();
        }
    }, new TextHeader(applicationConstants.makeName()));
    bottlesTable.addColumn(new TextColumn<BottleDto>() {
        @Override
        public String getValue(BottleDto bottle) {
            return DateTimeFormat.getFormat(DateTimeFormat.PredefinedFormat.DATE_MEDIUM)
                    .format(bottle.getProductionDate());
        }
    }, new TextHeader(applicationConstants.productionDate()));
    bottlesTable.addColumn(new TextColumn<BottleDto>() {
        @Override
        public String getValue(BottleDto bottle) {
            Date stampDate = bottle.getStampDate();

            if (bottle.isToxic()) {
                return applicationConstants.toxic();
            }

            if (stampDate == null) {
                return applicationConstants.notStamped();
            }

            String date = DateTimeFormat.getFormat(DateTimeFormat.PredefinedFormat.DATE_MEDIUM)
                    .format(stampDate);
            return applicationMessages.stampedOn(date);
        }
    }, new TextHeader(applicationConstants.bottleState()));

    selectionModel = new MultiSelectionModel<>();
    bottlesTable.setSelectionModel(selectionModel);

    final SimplePager pager = new SimplePager();

    bottlesTable.setLoadingIndicator(new ProgressBar());
    bottlesTable.setEmptyTableWidget(new Label(applicationConstants.noBottlesYet()));

    pager.setDisplay(bottlesTable);
}

From source file:org.cee.webreader.client.content.MultiSelectionCellListPresenter.java

License:Apache License

private void initSelectionModel(final CellList<EntityContent<K>> cellList,
        final MultiSelectListModel<K> listModel) {
    selectionModel = new MultiSelectionModel<EntityContent<K>>();
    cellList.setSelectionModel(selectionModel, new SelectionEventManager<EntityContent<K>>());
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        @Override/*from   w  w w  .j  av a2  s  .  c  om*/
        public void onSelectionChange(SelectionChangeEvent event) {
            listModel.setSelections(EntityContent.getKeys(selectionModel.getSelectedSet()));
        }
    });
}

From source file:org.cloudcoder.app.client.view.CourseAdminProblemListView.java

License:Open Source License

@Override
public void activate(final Session session, SubscriptionRegistrar subscriptionRegistrar) {
    this.session = session;
    session.subscribe(Session.Event.ADDED_OBJECT, this, subscriptionRegistrar);

    // Set selection model.
    // When a Problem is selected, it will be added to the Session.
    this.selectionModel = new MultiSelectionModel<ProblemAndModule>();
    selectionModel.addSelectionChangeHandler(new Handler() {
        @Override/*from   w  w w  .  j  a  v  a2  s.com*/
        public void onSelectionChange(SelectionChangeEvent event) {
            Set<ProblemAndModule> problemModuleSet = selectionModel.getSelectedSet();
            Problem[] problems = getProblemsFromProblemAndModule(problemModuleSet);
            if (problems != null) {
                session.add(problems);
                if (problems.length == 1) {
                    // If there's only one problem, add it by itself to the session
                    // This makes the options that operate on a single problem work better
                    session.add(problems[0]);
                }
            }
        }
    });
    grid.setSelectionModel(selectionModel);

    // Force loading of problems in course.
    // This avoids the problem that if a module in a course was selected
    // in the courses/problems page, some of the problems may not be
    // in the session (because they weren't in the selected module).
    CourseSelection courseSelection = session.get(CourseSelection.class);
    Course course = courseSelection.getCourse();
    loadProblems(session, course);
}

From source file:org.cruxframework.crux.widgets.client.listshuttle.ListShuttle.java

License:Apache License

public ListShuttle(List<T> availableItems, List<T> selectedItems) {
    listShuttle = new FlowPanel();

    //First Column
    FlowPanel toSelectColumn = new FlowPanel();
    toSelectColumn.setStyleName("toSelectColumn");

    toSelectColumnFieldset = new CaptionPanel();
    toSelectColumnFieldset.setStyleName("toSelectColumnFieldset");

    availableCellList = new CellList<T>(new BeanCell());
    availableCellList.setSelectionModel(new MultiSelectionModel<T>());

    //Middle Column
    FlowPanel buttonsColumn = new FlowPanel();
    buttonsColumn.setStyleName("buttonsColumn");

    addSelectedButton = new Button();
    addSelectedButton.setText(">");
    addAllButton = new Button();
    addAllButton.setText(">>");
    removeSelectedButton = new Button();
    removeSelectedButton.setText("<");
    removeAllButton = new Button();
    removeAllButton.setText("<<");

    //Last Column
    FlowPanel selectedColumn = new FlowPanel();
    selectedColumn.setStyleName("selectedColumn");

    selectedColumnFieldset = new CaptionPanel();
    selectedColumnFieldset.setStyleName("selectedColumnFieldset");

    selectedCellList = new CellList<T>(new BeanCell());
    selectedCellList.setSelectionModel(new MultiSelectionModel<T>());

    //Attaching columns
    toSelectColumnFieldset.add(availableCellList);
    selectedColumnFieldset.add(selectedCellList);

    toSelectColumn.add(toSelectColumnFieldset);
    selectedColumn.add(selectedColumnFieldset);

    buttonsColumn.add(addSelectedButton);
    buttonsColumn.add(addAllButton);//from  ww  w. j  av  a 2s.  co m
    buttonsColumn.add(removeSelectedButton);
    buttonsColumn.add(removeAllButton);

    listShuttle.add(toSelectColumn);
    listShuttle.add(buttonsColumn);
    listShuttle.add(selectedColumn);

    //Initializing Component
    setAvailableItems(availableItems);
    setSelectedItems(selectedItems);
    bindHandlers();
    initWidget(listShuttle);
    setStyleName("crux-ListShuttle");
}

From source file:org.dataconservancy.dcs.access.client.presenter.MediciIngestPresenter.java

License:Apache License

void addGetPubHandler() {
    getPub.addClickHandler(new ClickHandler() {

        @Override/* w ww  . j  a v a 2s. c  o m*/
        public void onClick(ClickEvent event) {
            final StatusPopupPanel mediciWait = new StatusPopupPanel("Retrieving", "wait", false);
            mediciWait.show();
            existingFileSets = new HashMap<String, FileTable>();
            previousSelectedFiles = new HashMap<String, List<FileNode>>();
            int selected = ir.getSelectedIndex();

            final String instance = ir.getValue(selected);

            mediciService.getAcrInstances(new AsyncCallback<List<MediciInstance>>() {

                @Override
                public void onSuccess(List<MediciInstance> result) {

                    for (MediciInstance ins : result)
                        if (ins.getTitle().equalsIgnoreCase(instance))
                            sparqlEndpoint = ins;

                    RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,
                            SeadApp.ACRCOMMON + "?instance=" + URL.encodeQueryString(sparqlEndpoint.getTitle())
                                    + "&" + "query="
                                    + URL.encodeQueryString(Query.PROPOSED_FOR_PUBLICATION.getTitle()));

                    rb.setHeader("Content-type", "application/x-www-form-urlencoded");

                    try {
                        Request response = rb.sendRequest(null, new RequestCallback() {
                            @Override
                            public void onError(Request request, Throwable exception) {
                                Window.alert("Failed");
                            }

                            @Override
                            public void onResponseReceived(Request request, Response response) {
                                String json = response.getText();
                                mediciService.parseJson(json, new AsyncCallback<Map<String, String>>() {

                                    @Override
                                    public void onSuccess(Map<String, String> result) {

                                        leftPanel.clear();
                                        JsonpRequestBuilder rb = new JsonpRequestBuilder();
                                        rb.setTimeout(100000);

                                        mediciWait.hide();
                                        last = result.size() - 1;
                                        final FlexTable grid = new FlexTable();
                                        grid.setWidth("100%");
                                        grid.setHeight("100%");

                                        final Iterator it = result.entrySet().iterator();
                                        while (it.hasNext()) {
                                            final Map.Entry pair = (Map.Entry) it.next();
                                            final String dName = (String) pair.getValue();

                                            flagHyperlink = 0;
                                            String tagRetrieveUrl = SeadApp.accessurl + SeadApp.queryPath
                                                    + "?q=resourceValue:" + "(" + URL.encodeQueryString(
                                                            ((String) pair.getKey()).replace(":", "\\:"))
                                                    + ")";
                                            rb.requestObject(tagRetrieveUrl,
                                                    new AsyncCallback<JsSearchResult>() {

                                                        public void onFailure(Throwable caught) {
                                                            Util.reportInternalError(
                                                                    "Matching collection in VA failed", caught);

                                                        }

                                                        public void onSuccess(JsSearchResult result) {
                                                            //                                          if(result.matches().length()==0||sparqlEndpoint.equals("http://sead.ncsa.illinois.edu/acr/resteasy/sparql"))
                                                            //                                          {
                                                            dataset = Util.label(
                                                                    dName.substring(dName.lastIndexOf("/") + 1),
                                                                    "Hyperlink");
                                                            flagHyperlink = 1;
                                                            //                                          }                           
                                                            //                                          else
                                                            //                                              flagHyperlink =0;

                                                            if (flagHyperlink == 1) {
                                                                dataset.addClickHandler(new ClickHandler() {
                                                                    @Override
                                                                    public void onClick(ClickEvent event) {
                                                                        mediciService.restartIngest(
                                                                                (String) pair.getKey(),
                                                                                SeadApp.tmpHome,
                                                                                new AsyncCallback<CheckPointDetail>() {

                                                                                    @Override
                                                                                    public void onFailure(
                                                                                            Throwable caught) {
                                                                                        Window.alert(
                                                                                                "Error in estimating reingest scenario. \n"
                                                                                                        + caught.getMessage());
                                                                                    }

                                                                                    @Override
                                                                                    public void onSuccess(
                                                                                            final CheckPointDetail result) {
                                                                                        if (!result
                                                                                                .isCheckPointed()) {
                                                                                            final StatusPopupPanel collectionWait = new StatusPopupPanel(
                                                                                                    "Querying for BagIt Bag",
                                                                                                    "bag",
                                                                                                    false);
                                                                                            collectionWait
                                                                                                    .show();

                                                                                            final MultiSelectionModel<CollectionNode> selectionModel = new MultiSelectionModel<CollectionNode>();

                                                                                            mediciService
                                                                                                    .getBag((String) pair
                                                                                                            .getKey(),
                                                                                                            sparqlEndpoint,
                                                                                                            SeadApp.bagIturl,
                                                                                                            SeadApp.tmpHome,
                                                                                                            new AsyncCallback<String>() {
                                                                                                                @Override
                                                                                                                public void onSuccess(
                                                                                                                        final String bagPath) {
                                                                                                                    collectionWait
                                                                                                                            .setValue(
                                                                                                                                    "Converting to SEAD SIP",
                                                                                                                                    "wait");

                                                                                                                    final Timer getSIPTimer = new Timer() {

                                                                                                                        @Override
                                                                                                                        public void run() {
                                                                                                                            String tempguid = null;
                                                                                                                            if (((String) pair
                                                                                                                                    .getKey())
                                                                                                                                            .contains(
                                                                                                                                                    "/"))
                                                                                                                                tempguid = ((String) pair
                                                                                                                                        .getKey())
                                                                                                                                                .split("/")[((String) pair
                                                                                                                                                        .getKey())
                                                                                                                                                                .split("/").length
                                                                                                                                                        - 1];
                                                                                                                            else
                                                                                                                                tempguid = ((String) pair
                                                                                                                                        .getKey())
                                                                                                                                                .split(":")[((String) pair
                                                                                                                                                        .getKey())
                                                                                                                                                                .split(":").length
                                                                                                                                                        - 1];
                                                                                                                            final String guid = tempguid;
                                                                                                                            mediciService
                                                                                                                                    .getSipFromBag(
                                                                                                                                            bagPath,
                                                                                                                                            SeadApp.tmpHome
                                                                                                                                                    + guid
                                                                                                                                                    + "_sip.xml",
                                                                                                                                            SeadApp.bagIturl,
                                                                                                                                            new AsyncCallback<String>() {

                                                                                                                                                @Override
                                                                                                                                                public void onSuccess(
                                                                                                                                                        String result) {

                                                                                                                                                    mediciService
                                                                                                                                                            .getFileNos(
                                                                                                                                                                    new AsyncCallback<Integer>() {
                                                                                                                                                                        @Override
                                                                                                                                                                        public void onFailure(
                                                                                                                                                                                Throwable caught) {
                                                                                                                                                                            Window.alert(
                                                                                                                                                                                    "Failed:"
                                                                                                                                                                                            + caught.getMessage());

                                                                                                                                                                        }

                                                                                                                                                                        @Override
                                                                                                                                                                        public void onSuccess(
                                                                                                                                                                                Integer size) {
                                                                                                                                                                            if (size > Constants.MAX) {
                                                                                                                                                                                Window.alert(
                                                                                                                                                                                        "This collection has more than "
                                                                                                                                                                                                + Constants.MAX
                                                                                                                                                                                                + " files.\n"
                                                                                                                                                                                                + "Hence preview is not possible. But you can start the ingest");
                                                                                                                                                                                if (collectionWait
                                                                                                                                                                                        .isShowing())
                                                                                                                                                                                    collectionWait
                                                                                                                                                                                            .hide();
                                                                                                                                                                                getPub.setEnabled(
                                                                                                                                                                                        false);
                                                                                                                                                                                cloudCopy
                                                                                                                                                                                        .setEnabled(
                                                                                                                                                                                                true);
                                                                                                                                                                                mdCb.setEnabled(
                                                                                                                                                                                        true);
                                                                                                                                                                                ingestButton
                                                                                                                                                                                        .setEnabled(
                                                                                                                                                                                                true);
                                                                                                                                                                                ir.setEnabled(
                                                                                                                                                                                        false);
                                                                                                                                                                                ir.setStyleName(
                                                                                                                                                                                        "greyFont");
                                                                                                                                                                                getPub.setStyleName(
                                                                                                                                                                                        "greyFont");
                                                                                                                                                                                cloudCopy
                                                                                                                                                                                        .setStyleName(
                                                                                                                                                                                                "greenFont");
                                                                                                                                                                                mdCb.setStyleName(
                                                                                                                                                                                        "greenFont");
                                                                                                                                                                                ingestButton
                                                                                                                                                                                        .setStyleName(
                                                                                                                                                                                                "greenFont");

                                                                                                                                                                                ingestButton
                                                                                                                                                                                        .addClickHandler(
                                                                                                                                                                                                new ClickHandler() {

                                                                                                                                                                                                    @Override
                                                                                                                                                                                                    public void onClick(
                                                                                                                                                                                                            ClickEvent event) {
                                                                                                                                                                                                        ingestButton
                                                                                                                                                                                                                .setEnabled(
                                                                                                                                                                                                                        false);
                                                                                                                                                                                                        cloudCopy
                                                                                                                                                                                                                .setEnabled(
                                                                                                                                                                                                                        false);
                                                                                                                                                                                                        ir.setEnabled(
                                                                                                                                                                                                                false);
                                                                                                                                                                                                        getPub.setEnabled(
                                                                                                                                                                                                                true);
                                                                                                                                                                                                        String rootMediciId = (String) pair
                                                                                                                                                                                                                .getKey();

                                                                                                                                                                                                        AsyncCallback<Void> vaModelCb = new AsyncCallback<Void>() {
                                                                                                                                                                                                            @Override
                                                                                                                                                                                                            public void onSuccess(
                                                                                                                                                                                                                    Void result) {
                                                                                                                                                                                                                mediciService
                                                                                                                                                                                                                        .addMetadata(
                                                                                                                                                                                                                                metadataSrc,
                                                                                                                                                                                                                                SeadApp.tmpHome
                                                                                                                                                                                                                                        + guid
                                                                                                                                                                                                                                        + "_sip",
                                                                                                                                                                                                                                new AsyncCallback<Void>() {

                                                                                                                                                                                                                                    @Override
                                                                                                                                                                                                                                    public void onSuccess(
                                                                                                                                                                                                                                            Void result) {

                                                                                                                                                                                                                                        mediciService
                                                                                                                                                                                                                                                .splitSip(
                                                                                                                                                                                                                                                        SeadApp.tmpHome
                                                                                                                                                                                                                                                                + guid
                                                                                                                                                                                                                                                                + "_sip",
                                                                                                                                                                                                                                                        new AsyncCallback<Integer>() {

                                                                                                                                                                                                                                                            @Override
                                                                                                                                                                                                                                                            public void onSuccess(
                                                                                                                                                                                                                                                                    Integer result) {
                                                                                                                                                                                                                                                                n = result;
                                                                                                                                                                                                                                                                l++;
                                                                                                                                                                                                                                                                if (l <= n) {
                                                                                                                                                                                                                                                                    mediciService
                                                                                                                                                                                                                                                                            .generateWfInstanceId(
                                                                                                                                                                                                                                                                                    new AsyncCallback<String>() {

                                                                                                                                                                                                                                                                                        @Override
                                                                                                                                                                                                                                                                                        public void onSuccess(
                                                                                                                                                                                                                                                                                                final String wfInstanceId) {
                                                                                                                                                                                                                                                                                            UserServiceAsync user = GWT
                                                                                                                                                                                                                                                                                                    .create(UserService.class);
                                                                                                                                                                                                                                                                                            user.checkSession(
                                                                                                                                                                                                                                                                                                    null,
                                                                                                                                                                                                                                                                                                    new AsyncCallback<UserSession>() {

                                                                                                                                                                                                                                                                                                        @Override
                                                                                                                                                                                                                                                                                                        public void onFailure(
                                                                                                                                                                                                                                                                                                                Throwable caught) {
                                                                                                                                                                                                                                                                                                            // TODO Auto-generated method stub

                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                        @Override
                                                                                                                                                                                                                                                                                                        public void onSuccess(
                                                                                                                                                                                                                                                                                                                UserSession result) {

                                                                                                                                                                                                                                                                                                            mediciService
                                                                                                                                                                                                                                                                                                                    .submitMultipleSips(
                                                                                                                                                                                                                                                                                                                            SeadApp.deposit_endpoint
                                                                                                                                                                                                                                                                                                                                    + "sip",
                                                                                                                                                                                                                                                                                                                            (String) pair
                                                                                                                                                                                                                                                                                                                                    .getKey(),
                                                                                                                                                                                                                                                                                                                            sparqlEndpoint,
                                                                                                                                                                                                                                                                                                                            SeadApp.tmpHome
                                                                                                                                                                                                                                                                                                                                    + guid
                                                                                                                                                                                                                                                                                                                                    + "_sip",
                                                                                                                                                                                                                                                                                                                            wfInstanceId,
                                                                                                                                                                                                                                                                                                                            null,
                                                                                                                                                                                                                                                                                                                            l,
                                                                                                                                                                                                                                                                                                                            n,
                                                                                                                                                                                                                                                                                                                            "",
                                                                                                                                                                                                                                                                                                                            "",
                                                                                                                                                                                                                                                                                                                            false,
                                                                                                                                                                                                                                                                                                                            GWT.getModuleBaseURL(),
                                                                                                                                                                                                                                                                                                                            SeadApp.tmpHome,
                                                                                                                                                                                                                                                                                                                            false,
                                                                                                                                                                                                                                                                                                                            false,
                                                                                                                                                                                                                                                                                                                            new AsyncCallback<String>() {

                                                                                                                                                                                                                                                                                                                                @Override
                                                                                                                                                                                                                                                                                                                                public void onSuccess(
                                                                                                                                                                                                                                                                                                                                        final String result) {
                                                                                                                                                                                                                                                                                                                                    l = -1;
                                                                                                                                                                                                                                                                                                                                    final Label notify = Util
                                                                                                                                                                                                                                                                                                                                            .label("!",
                                                                                                                                                                                                                                                                                                                                                    "Notification");
                                                                                                                                                                                                                                                                                                                                    notify.addClickHandler(
                                                                                                                                                                                                                                                                                                                                            new ClickHandler() {

                                                                                                                                                                                                                                                                                                                                                @Override
                                                                                                                                                                                                                                                                                                                                                public void onClick(
                                                                                                                                                                                                                                                                                                                                                        ClickEvent event) {
                                                                                                                                                                                                                                                                                                                                                    StatusPopupPanel mediciWait = new StatusPopupPanel(
                                                                                                                                                                                                                                                                                                                                                            "Retrieving",
                                                                                                                                                                                                                                                                                                                                                            "done",
                                                                                                                                                                                                                                                                                                                                                            false);
                                                                                                                                                                                                                                                                                                                                                    MessagePopupPanel popUpPanel = new MessagePopupPanel(
                                                                                                                                                                                                                                                                                                                                                            result,
                                                                                                                                                                                                                                                                                                                                                            "done",
                                                                                                                                                                                                                                                                                                                                                            true);
                                                                                                                                                                                                                                                                                                                                                    popUpPanel
                                                                                                                                                                                                                                                                                                                                                            .show();
                                                                                                                                                                                                                                                                                                                                                    nPanel.remove(
                                                                                                                                                                                                                                                                                                                                                            notify);
                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                            });
                                                                                                                                                                                                                                                                                                                                    nPanel.add(
                                                                                                                                                                                                                                                                                                                                            notify);
                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                @Override
                                                                                                                                                                                                                                                                                                                                public void onFailure(
                                                                                                                                                                                                                                                                                                                                        Throwable caught) {
                                                                                                                                                                                                                                                                                                                                    Window.alert(
                                                                                                                                                                                                                                                                                                                                            "Workflow failed.");
                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                            });

                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                    });
                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                        @Override
                                                                                                                                                                                                                                                                                        public void onFailure(
                                                                                                                                                                                                                                                                                                Throwable caught) {
                                                                                                                                                                                                                                                                                            // TODO Auto-generated method stub

                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                    });

                                                                                                                                                                                                                                                                } else {
                                                                                                                                                                                                                                                                    Window.alert(
                                                                                                                                                                                                                                                                            "This dataset is already ingested. Please clear checkpointing if you want to rerun the workflow");
                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                            @Override
                                                                                                                                                                                                                                                            public void onFailure(
                                                                                                                                                                                                                                                                    Throwable caught) {
                                                                                                                                                                                                                                                                // TODO Auto-generated method stub

                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                        });
                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                    @Override
                                                                                                                                                                                                                                    public void onFailure(
                                                                                                                                                                                                                                            Throwable caught) {
                                                                                                                                                                                                                                        // TODO Auto-generated method stub

                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                });
                                                                                                                                                                                                            }

                                                                                                                                                                                                            @Override
                                                                                                                                                                                                            public void onFailure(
                                                                                                                                                                                                                    Throwable caught) {
                                                                                                                                                                                                                // TODO Auto-generated method stub

                                                                                                                                                                                                            }
                                                                                                                                                                                                        };
                                                                                                                                                                                                        mediciService
                                                                                                                                                                                                                .toVAmodel(
                                                                                                                                                                                                                        rootMediciId,
                                                                                                                                                                                                                        rootMediciId,
                                                                                                                                                                                                                        sparqlEndpoint,
                                                                                                                                                                                                                        SeadApp.tmpHome,
                                                                                                                                                                                                                        vaModelCb);

                                                                                                                                                                                                    }
                                                                                                                                                                                                });

                                                                                                                                                                                coverRightPanel
                                                                                                                                                                                        .setVisible(
                                                                                                                                                                                                true);
                                                                                                                                                                            } else {
                                                                                                                                                                                mediciService
                                                                                                                                                                                        .getRelations(
                                                                                                                                                                                                new AsyncCallback<DatasetRelation>() {

                                                                                                                                                                                                    @Override
                                                                                                                                                                                                    public void onFailure(
                                                                                                                                                                                                            Throwable caught) {
                                                                                                                                                                                                        Window.alert(
                                                                                                                                                                                                                "Failed:"
                                                                                                                                                                                                                        + caught.getMessage());

                                                                                                                                                                                                    }

                                                                                                                                                                                                    @Override
                                                                                                                                                                                                    public void onSuccess(
                                                                                                                                                                                                            final DatasetRelation relations) {

                                                                                                                                                                                                        display.getDatasetLbl()
                                                                                                                                                                                                                .setText(
                                                                                                                                                                                                                        "Browse Collection and sub-Collections");
                                                                                                                                                                                                        display.getFileLbl()
                                                                                                                                                                                                                .setText(
                                                                                                                                                                                                                        "Browse Files");
                                                                                                                                                                                                        TreeViewModel model = new CollectionTreeViewModel(
                                                                                                                                                                                                                selectionModel,
                                                                                                                                                                                                                relations,
                                                                                                                                                                                                                (String) pair
                                                                                                                                                                                                                        .getKey());
                                                                                                                                                                                                        CellTree.Resources resource = GWT
                                                                                                                                                                                                                .create(TreeResources.class);
                                                                                                                                                                                                        CellTree tree = new CellTree(
                                                                                                                                                                                                                model,
                                                                                                                                                                                                                null,
                                                                                                                                                                                                                resource);
                                                                                                                                                                                                        //collection select
                                                                                                                                                                                                        CollectionSelectEvent
                                                                                                                                                                                                                .register(
                                                                                                                                                                                                                        EVENT_BUS,
                                                                                                                                                                                                                        new CollectionSelectEvent.Handler() {
                                                                                                                                                                                                                            public void onMessageReceived(
                                                                                                                                                                                                                                    final CollectionSelectEvent event) {

                                                                                                                                                                                                                                rightPanel
                                                                                                                                                                                                                                        .clear();
                                                                                                                                                                                                                                rightPanel
                                                                                                                                                                                                                                        .add(getFiles(
                                                                                                                                                                                                                                                relations
                                                                                                                                                                                                                                                        .getDuAttrMap(),
                                                                                                                                                                                                                                                relations
                                                                                                                                                                                                                                                        .getFileAttrMap(),
                                                                                                                                                                                                                                                event.getCollection()
                                                                                                                                                                                                                                                        .getId(),
                                                                                                                                                                                                                                                event.getValue()));
                                                                                                                                                                                                                            }
                                                                                                                                                                                                                        });

                                                                                                                                                                                                        //collection click
                                                                                                                                                                                                        CollectionClickEvent
                                                                                                                                                                                                                .register(
                                                                                                                                                                                                                        EVENT_BUS,
                                                                                                                                                                                                                        new CollectionClickEvent.Handler() {
                                                                                                                                                                                                                            public void onMessageReceived(
                                                                                                                                                                                                                                    final CollectionClickEvent event) {

                                                                                                                                                                                                                                if (existingFileSets
                                                                                                                                                                                                                                        .containsKey(
                                                                                                                                                                                                                                                event.getCollection()
                                                                                                                                                                                                                                                        .getId())) {
                                                                                                                                                                                                                                    rightPanel
                                                                                                                                                                                                                                            .clear();
                                                                                                                                                                                                                                    rightPanel
                                                                                                                                                                                                                                            .add(existingFileSets
                                                                                                                                                                                                                                                    .get(event
                                                                                                                                                                                                                                                            .getCollection()
                                                                                                                                                                                                                                                            .getId()).cellTable);
                                                                                                                                                                                                                                } else {

                                                                                                                                                                                                                                    rightPanel
                                                                                                                                                                                                                                            .clear();
                                                                                                                                                                                                                                    rightPanel
                                                                                                                                                                                                                                            .add(getFiles(
                                                                                                                                                                                                                                                    relations
                                                                                                                                                                                                                                                            .getDuAttrMap(),
                                                                                                                                                                                                                                                    relations
                                                                                                                                                                                                                                                            .getFileAttrMap(),
                                                                                                                                                                                                                                                    event.getCollection()
                                                                                                                                                                                                                                                            .getId(),
                                                                                                                                                                                                                                                    false));
                                                                                                                                                                                                                                }
                                                                                                                                                                                                                            }
                                                                                                                                                                                                                        });
                                                                                                                                                                                                        //collection passive click
                                                                                                                                                                                                        CollectionPassiveSelectEvent
                                                                                                                                                                                                                .register(
                                                                                                                                                                                                                        EVENT_BUS,
                                                                                                                                                                                                                        new CollectionPassiveSelectEvent.Handler() {
                                                                                                                                                                                                                            public void onMessageReceived(
                                                                                                                                                                                                                                    final CollectionPassiveSelectEvent event) {

                                                                                                                                                                                                                                CellTable files;
                                                                                                                                                                                                                                if (existingFileSets
                                                                                                                                                                                                                                        .containsKey(
                                                                                                                                                                                                                                                event.getCollection()
                                                                                                                                                                                                                                                        .getId())) {
                                                                                                                                                                                                                                    files = existingFileSets
                                                                                                                                                                                                                                            .get(event
                                                                                                                                                                                                                                                    .getCollection()
                                                                                                                                                                                                                                                    .getId()).cellTable;
                                                                                                                                                                                                                                    for (String file : relations
                                                                                                                                                                                                                                            .getDuAttrMap()
                                                                                                                                                                                                                                            .get(event
                                                                                                                                                                                                                                                    .getCollection()
                                                                                                                                                                                                                                                    .getId())
                                                                                                                                                                                                                                            .getSub()
                                                                                                                                                                                                                                            .get(SubType.File)) {
                                                                                                                                                                                                                                        files.getSelectionModel()
                                                                                                                                                                                                                                                .setSelected(
                                                                                                                                                                                                                                                        (FileNode) relations
                                                                                                                                                                                                                                                                .getFileAttrMap()
                                                                                                                                                                                                                                                                .get(file),
                                                                                                                                                                                                                                                        event.getValue());
                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                } else {
                                                                                                                                                                                                                                    files = (CellTable) getFiles(
                                                                                                                                                                                                                                            relations
                                                                                                                                                                                                                                                    .getDuAttrMap(),
                                                                                                                                                                                                                                            relations
                                                                                                                                                                                                                                                    .getFileAttrMap(),
                                                                                                                                                                                                                                            event.getCollection()
                                                                                                                                                                                                                                                    .getId(),
                                                                                                                                                                                                                                            event.getValue());
                                                                                                                                                                                                                                }

                                                                                                                                                                                                                            }
                                                                                                                                                                                                                        });

                                                                                                                                                                                                        collectionWait
                                                                                                                                                                                                                .hide();
                                                                                                                                                                                                        leftPanel
                                                                                                                                                                                                                .clear();
                                                                                                                                                                                                        leftPanel
                                                                                                                                                                                                                .add(tree);

                                                                                                                                                                                                        if (collectionWait
                                                                                                                                                                                                                .isShowing())
                                                                                                                                                                                                            collectionWait
                                                                                                                                                                                                                    .hide();
                                                                                                                                                                                                        getPub.setEnabled(
                                                                                                                                                                                                                false);
                                                                                                                                                                                                        cloudCopy
                                                                                                                                                                                                                .setEnabled(
                                                                                                                                                                                                                        true);
                                                                                                                                                                                                        mdCb.setEnabled(
                                                                                                                                                                                                                true);
                                                                                                                                                                                                        ingestButton
                                                                                                                                                                                                                .setEnabled(
                                                                                                                                                                                                                        true);
                                                                                                                                                                                                        ir.setEnabled(
                                                                                                                                                                                                                false);
                                                                                                                                                                                                        ir.setStyleName(
                                                                                                                                                                                                                "greyFont");
                                                                                                                                                                                                        getPub.setStyleName(
                                                                                                                                                                                                                "greyFont");
                                                                                                                                                                                                        cloudCopy
                                                                                                                                                                                                                .setStyleName(
                                                                                                                                                                                                                        "greenFont");
                                                                                                                                                                                                        mdCb.setStyleName(
                                                                                                                                                                                                                "greenFont");
                                                                                                                                                                                                        ingestButton
                                                                                                                                                                                                                .setStyleName(
                                                                                                                                                                                                                        "greenFont");

                                                                                                                                                                                                        ingestButton
                                                                                                                                                                                                                .addClickHandler(
                                                                                                                                                                                                                        new ClickHandler() {

                                                                                                                                                                                                                            @Override
                                                                                                                                                                                                                            public void onClick(
                                                                                                                                                                                                                                    ClickEvent event) {
                                                                                                                                                                                                                                ingestButton
                                                                                                                                                                                                                                        .setEnabled(
                                                                                                                                                                                                                                                false);
                                                                                                                                                                                                                                cloudCopy
                                                                                                                                                                                                                                        .setEnabled(
                                                                                                                                                                                                                                                false);
                                                                                                                                                                                                                                ir.setEnabled(
                                                                                                                                                                                                                                        false);
                                                                                                                                                                                                                                getPub.setEnabled(
                                                                                                                                                                                                                                        true);
                                                                                                                                                                                                                                String rootMediciId = (String) pair
                                                                                                                                                                                                                                        .getKey();
                                                                                                                                                                                                                                CollectionNode root = relations
                                                                                                                                                                                                                                        .getDuAttrMap()
                                                                                                                                                                                                                                        .get(rootMediciId);

                                                                                                                                                                                                                                AsyncCallback<Void> vaModelCb = new AsyncCallback<Void>() {
                                                                                                                                                                                                                                    @Override
                                                                                                                                                                                                                                    public void onSuccess(
                                                                                                                                                                                                                                            Void result) {
                                                                                                                                                                                                                                        mediciService
                                                                                                                                                                                                                                                .addMetadata(
                                                                                                                                                                                                                                                        metadataSrc,
                                                                                                                                                                                                                                                        SeadApp.tmpHome
                                                                                                                                                                                                                                                                + guid
                                                                                                                                                                                                                                                                + "_sip",
                                                                                                                                                                                                                                                        new AsyncCallback<Void>() {

                                                                                                                                                                                                                                                            @Override
                                                                                                                                                                                                                                                            public void onSuccess(
                                                                                                                                                                                                                                                                    Void result) {
                                                                                                                                                                                                                                                                String tempguid = null;
                                                                                                                                                                                                                                                                if (((String) pair
                                                                                                                                                                                                                                                                        .getKey())
                                                                                                                                                                                                                                                                                .contains(
                                                                                                                                                                                                                                                                                        "/"))
                                                                                                                                                                                                                                                                    tempguid = ((String) pair
                                                                                                                                                                                                                                                                            .getKey())
                                                                                                                                                                                                                                                                                    .split("/")[((String) pair
                                                                                                                                                                                                                                                                                            .getKey())
                                                                                                                                                                                                                                                                                                    .split("/").length
                                                                                                                                                                                                                                                                                            - 1];
                                                                                                                                                                                                                                                                else
                                                                                                                                                                                                                                                                    tempguid = ((String) pair
                                                                                                                                                                                                                                                                            .getKey())
                                                                                                                                                                                                                                                                                    .split(":")[((String) pair
                                                                                                                                                                                                                                                                                            .getKey())
                                                                                                                                                                                                                                                                                                    .split(":").length
                                                                                                                                                                                                                                                                                            - 1];
                                                                                                                                                                                                                                                                final String guid = tempguid;

                                                                                                                                                                                                                                                                mediciService
                                                                                                                                                                                                                                                                        .splitSip(
                                                                                                                                                                                                                                                                                SeadApp.tmpHome
                                                                                                                                                                                                                                                                                        + guid
                                                                                                                                                                                                                                                                                        + "_sip",
                                                                                                                                                                                                                                                                                new AsyncCallback<Integer>() {

                                                                                                                                                                                                                                                                                    @Override
                                                                                                                                                                                                                                                                                    public void onSuccess(
                                                                                                                                                                                                                                                                                            Integer result) {
                                                                                                                                                                                                                                                                                        n = result;
                                                                                                                                                                                                                                                                                        l++;

                                                                                                                                                                                                                                                                                        //                                                                                                                     Window.alert("Starting ingest of dataset");//. We already have the cached SIP for this dataset.");
                                                                                                                                                                                                                                                                                        mediciService
                                                                                                                                                                                                                                                                                                .generateWfInstanceId(
                                                                                                                                                                                                                                                                                                        new AsyncCallback<String>() {

                                                                                                                                                                                                                                                                                                            @Override
                                                                                                                                                                                                                                                                                                            public void onSuccess(
                                                                                                                                                                                                                                                                                                                    String wfInstanceId) {
                                                                                                                                                                                                                                                                                                                //Open a status panel that self queries the database for changes
                                                                                                                                                                                                                                                                                                                WfEventRefresherPanel eventRefresher = new WfEventRefresherPanel(
                                                                                                                                                                                                                                                                                                                        submitterId,
                                                                                                                                                                                                                                                                                                                        wfInstanceId);
                                                                                                                                                                                                                                                                                                                eventRefresher
                                                                                                                                                                                                                                                                                                                        .show();
                                                                                                                                                                                                                                                                                                                mediciService
                                                                                                                                                                                                                                                                                                                        .submitMultipleSips(
                                                                                                                                                                                                                                                                                                                                SeadApp.deposit_endpoint
                                                                                                                                                                                                                                                                                                                                        + "sip",
                                                                                                                                                                                                                                                                                                                                (String) pair
                                                                                                                                                                                                                                                                                                                                        .getKey(),
                                                                                                                                                                                                                                                                                                                                sparqlEndpoint,
                                                                                                                                                                                                                                                                                                                                SeadApp.tmpHome
                                                                                                                                                                                                                                                                                                                                        + guid
                                                                                                                                                                                                                                                                                                                                        + "_sip",
                                                                                                                                                                                                                                                                                                                                wfInstanceId,
                                                                                                                                                                                                                                                                                                                                null,
                                                                                                                                                                                                                                                                                                                                l,
                                                                                                                                                                                                                                                                                                                                n,
                                                                                                                                                                                                                                                                                                                                "",
                                                                                                                                                                                                                                                                                                                                "",
                                                                                                                                                                                                                                                                                                                                false,
                                                                                                                                                                                                                                                                                                                                GWT.getModuleBaseURL(),
                                                                                                                                                                                                                                                                                                                                SeadApp.tmpHome,
                                                                                                                                                                                                                                                                                                                                false,
                                                                                                                                                                                                                                                                                                                                false,
                                                                                                                                                                                                                                                                                                                                new AsyncCallback<String>() {

                                                                                                                                                                                                                                                                                                                                    @Override
                                                                                                                                                                                                                                                                                                                                    public void onSuccess(
                                                                                                                                                                                                                                                                                                                                            final String result) {
                                                                                                                                                                                                                                                                                                                                        l = -1;
                                                                                                                                                                                                                                                                                                                                        final Label notify = Util
                                                                                                                                                                                                                                                                                                                                                .label("!",
                                                                                                                                                                                                                                                                                                                                                        "Notification");
                                                                                                                                                                                                                                                                                                                                        notify.addClickHandler(
                                                                                                                                                                                                                                                                                                                                                new ClickHandler() {

                                                                                                                                                                                                                                                                                                                                                    @Override
                                                                                                                                                                                                                                                                                                                                                    public void onClick(
                                                                                                                                                                                                                                                                                                                                                            ClickEvent event) {
                                                                                                                                                                                                                                                                                                                                                        MessagePopupPanel popUpPanel = new MessagePopupPanel(
                                                                                                                                                                                                                                                                                                                                                                result,
                                                                                                                                                                                                                                                                                                                                                                "done",
                                                                                                                                                                                                                                                                                                                                                                true);
                                                                                                                                                                                                                                                                                                                                                        popUpPanel
                                                                                                                                                                                                                                                                                                                                                                .show();
                                                                                                                                                                                                                                                                                                                                                        nPanel.remove(
                                                                                                                                                                                                                                                                                                                                                                notify);
                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                });
                                                                                                                                                                                                                                                                                                                                        //                                                                                                                                       nPanel.add(notify);
                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                    @Override
                                                                                                                                                                                                                                                                                                                                    public void onFailure(
                                                                                                                                                                                                                                                                                                                                            Throwable caught) {

                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                });

                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                            @Override
                                                                                                                                                                                                                                                                                                            public void onFailure(
                                                                                                                                                                                                                                                                                                                    Throwable caught) {

                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                        });

                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                    @Override
                                                                                                                                                                                                                                                                                    public void onFailure(
                                                                                                                                                                                                                                                                                            Throwable caught) {
                                                                                                                                                                                                                                                                                        Window.alert(
                                                                                                                                                                                                                                                                                                "Failed. \n"
                                                                                                                                                                                                                                                                                                        + caught.getMessage());
                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                });
                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                            @Override
                                                                                                                                                                                                                                                            public void onFailure(
                                                                                                                                                                                                                                                                    Throwable caught) {
                                                                                                                                                                                                                                                                Window.alert(
                                                                                                                                                                                                                                                                        "Failed. \n"
                                                                                                                                                                                                                                                                                + caught.getMessage());
                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                        });
                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                    @Override
                                                                                                                                                                                                                                    public void onFailure(
                                                                                                                                                                                                                                            Throwable caught) {
                                                                                                                                                                                                                                        Window.alert(
                                                                                                                                                                                                                                                "Failed. \n"
                                                                                                                                                                                                                                                        + caught.getMessage());
                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                };
                                                                                                                                                                                                                                mediciService
                                                                                                                                                                                                                                        .toVAmodel(
                                                                                                                                                                                                                                                rootMediciId,
                                                                                                                                                                                                                                                rootMediciId,
                                                                                                                                                                                                                                                sparqlEndpoint,
                                                                                                                                                                                                                                                SeadApp.tmpHome,
                                                                                                                                                                                                                                                vaModelCb);

                                                                                                                                                                                                                            }
                                                                                                                                                                                                                        });
                                                                                                                                                                                                        coverRightPanel
                                                                                                                                                                                                                .setVisible(
                                                                                                                                                                                                                        true);
                                                                                                                                                                                                    }
                                                                                                                                                                                                });
                                                                                                                                                                            }
                                                                                                                                                                        }
                                                                                                                                                                    });
                                                                                                                                                }

                                                                                                                                                @Override
                                                                                                                                                public void onFailure(
                                                                                                                                                        Throwable caught) {
                                                                                                                                                    Window.alert(
                                                                                                                                                            "Failed:"
                                                                                                                                                                    + caught.getMessage());

                                                                                                                                                }
                                                                                                                                            });

                                                                                                                        }
                                                                                                                    };
                                                                                                                    getSIPTimer
                                                                                                                            .schedule(
                                                                                                                                    5000);
                                                                                                                }

                                                                                                                @Override
                                                                                                                public void onFailure(
                                                                                                                        Throwable caught) {
                                                                                                                    Window.alert(
                                                                                                                            "Failed:"
                                                                                                                                    + caught.getMessage());

                                                                                                                }
                                                                                                            });

                                                                                        } else {
                                                                                            //restart ingest

                                                                                            n = result
                                                                                                    .getNumSplitSIPs();
                                                                                            String[] arr = result
                                                                                                    .getResumeSipPath()
                                                                                                    .split("_");
                                                                                            int sipNumber = Integer
                                                                                                    .parseInt(
                                                                                                            arr[arr.length
                                                                                                                    - 1].split(
                                                                                                                            "\\.")[0]);
                                                                                            l = sipNumber;
                                                                                            if (l <= n) {

                                                                                                Window.alert(
                                                                                                        "Starting reingest of dataset. We already have the cached SIP for this dataset.");
                                                                                                mediciService
                                                                                                        .generateWfInstanceId(
                                                                                                                new AsyncCallback<String>() {

                                                                                                                    @Override
                                                                                                                    public void onSuccess(
                                                                                                                            String wfInstanceId) {
                                                                                                                        mediciService
                                                                                                                                .submitMultipleSips(
                                                                                                                                        SeadApp.deposit_endpoint
                                                                                                                                                + "sip",
                                                                                                                                        null,
                                                                                                                                        sparqlEndpoint,
                                                                                                                                        result.getResumeSipPath()
                                                                                                                                                .replace(
                                                                                                                                                        "_" + l + ".xml",
                                                                                                                                                        ""),
                                                                                                                                        wfInstanceId,
                                                                                                                                        result.getPreviousStatusUrls(),
                                                                                                                                        l,
                                                                                                                                        n,
                                                                                                                                        "",
                                                                                                                                        "",
                                                                                                                                        false,
                                                                                                                                        GWT.getModuleBaseURL(),
                                                                                                                                        SeadApp.tmpHome,
                                                                                                                                        false,
                                                                                                                                        false,
                                                                                                                                        new AsyncCallback<String>() {

                                                                                                                                            @Override
                                                                                                                                            public void onSuccess(
                                                                                                                                                    final String result) {
                                                                                                                                                l = -1;
                                                                                                                                                final Label notify = Util
                                                                                                                                                        .label("!",
                                                                                                                                                                "Notification");
                                                                                                                                                notify.addClickHandler(
                                                                                                                                                        new ClickHandler() {

                                                                                                                                                            @Override
                                                                                                                                                            public void onClick(
                                                                                                                                                                    ClickEvent event) {
                                                                                                                                                                MessagePopupPanel popUpPanel = new MessagePopupPanel(
                                                                                                                                                                        result,
                                                                                                                                                                        "done",
                                                                                                                                                                        true);
                                                                                                                                                                popUpPanel
                                                                                                                                                                        .show();
                                                                                                                                                                nPanel.remove(
                                                                                                                                                                        notify);
                                                                                                                                                            }
                                                                                                                                                        });
                                                                                                                                                nPanel.add(
                                                                                                                                                        notify);
                                                                                                                                            }

                                                                                                                                            @Override
                                                                                                                                            public void onFailure(
                                                                                                                                                    Throwable caught) {

                                                                                                                                            }
                                                                                                                                        });
                                                                                                                        //Open a status panel that self queries the database for changes
                                                                                                                        WfEventRefresherPanel eventRefresher = new WfEventRefresherPanel(
                                                                                                                                submitterId,
                                                                                                                                wfInstanceId);
                                                                                                                        eventRefresher
                                                                                                                                .show();
                                                                                                                    }

                                                                                                                    @Override
                                                                                                                    public void onFailure(
                                                                                                                            Throwable caught) {

                                                                                                                    }
                                                                                                                });

                                                                                            } else {
                                                                                                Window.alert(
                                                                                                        "This dataset is already ingested. Please clear checkpointing if you want to rerun the workflow.");
                                                                                            }
                                                                                            //MediciIngestPresenter.EVENT_BUS.fireEvent(new SubmitSipEvent(
                                                                                            //                                                result.getResumeSipPath().replace("_"+l+".xml", ""),
                                                                                            //                                                result.getPreviousStatusUrls()
                                                                                            //                                                ));
                                                                                        }

                                                                                    }
                                                                                });
                                                                    }
                                                                });
                                                            }
                                                            int index;
                                                            if (flagHyperlink == 1) {
                                                                index = first;
                                                                first++;
                                                            } else {
                                                                index = last;
                                                                last--;
                                                            }

                                                            grid.setWidget(index, 0, dataset);
                                                            grid.getRowFormatter().setStyleName(index,
                                                                    "DatasetsRow");

                                                        }
                                                    });
                                            it.remove(); // avoids a ConcurrentModificationException
                                        }
                                        leftPanel.add(grid);

                                    }

                                    @Override
                                    public void onFailure(Throwable caught) {
                                        // TODO Auto-generated method stub

                                    }
                                });
                            }
                        });
                    } catch (RequestException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                }

                @Override
                public void onFailure(Throwable caught) {
                    // TODO Auto-generated method stub

                }
            });
        }
    });
}

From source file:org.dataconservancy.dcs.access.client.presenter.MediciIngestPresenter.java

License:Apache License

public Widget getFiles(Map<String, CollectionNode> dusMap, Map<String, FileNode> filesMap,
        final String selectedCollection, Boolean valForAll) {

    List<String> files = dusMap.get(selectedCollection).getSub().get(SubType.File);
    final FileTable fileTable = new FileTable();

    CellTable.Resources resource = GWT.create(TableResources.class);
    fileTable.cellTable = new CellTable<FileNode>(files.size(), resource);

    fileTable.cellTable.setWidth("100%", true);
    fileTable.selectionFileModel = new MultiSelectionModel<FileNode>();

    fileTable.cellTable.setSelectionModel(fileTable.selectionFileModel,
            DefaultSelectionEventManager.<FileNode>createCheckboxManager());
    fileTable.selectionFileModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {

        @Override//from   www .  j  av a 2 s  .  co m
        public void onSelectionChange(SelectionChangeEvent event) {
            // TODO Auto-generated method stub
            List<FileNode> nowSelected = new ArrayList<FileNode>(fileTable.selectionFileModel.getSelectedSet());
            List<FileNode> previousSelected;
            List<FileNode> tempSelected;

            if (previousSelectedFiles.containsKey(selectedCollection))
                previousSelected = previousSelectedFiles.get(selectedCollection);
            else
                previousSelected = new ArrayList<FileNode>();

            if (nowSelected.size() > previousSelected.size()) {
                tempSelected = new ArrayList<FileNode>(nowSelected);
                tempSelected.removeAll(previousSelected);
            } else {
                tempSelected = new ArrayList<FileNode>(previousSelected);
                tempSelected.removeAll(nowSelected);
            }

            previousSelectedFiles.put(selectedCollection, nowSelected); //update previous selected files
            //   if(tempSelected.size()==1)//uncomment these 2 statements later
            //   MediciIngestPresenter.EVENT_BUS.fireEvent(new FileSelectEvent(tempSelected.get(0),true));
            //(FileNode)selectionFileModel.getSelectedSet().toArray()[0],true));
        }
    });
    Column<FileNode, Boolean> checkColumn = new Column<FileNode, Boolean>(new CheckboxCell(true, false)) {
        @Override
        public Boolean getValue(FileNode object) {
            // Get the value from the selection model.
            return fileTable.selectionFileModel.isSelected(object);
        }

    };

    fileTable.cellTable.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
    fileTable.cellTable.setColumnWidth(checkColumn, 40, Unit.PX);

    // First name.
    final Resources resources = GWT.create(Resources.class);

    Column<FileNode, ImageResource> imageColumn = new Column<FileNode, ImageResource>(new ImageResourceCell()) {
        @Override
        public ImageResource getValue(FileNode object) {
            return resources.file();
        }

    };

    fileTable.cellTable.addColumn(imageColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
    fileTable.cellTable.setColumnWidth(imageColumn, 40, Unit.PX);

    Column<FileNode, String> firstNameColumn = new Column<FileNode, String>(new EditTextCell()) {
        @Override
        public String getValue(FileNode object) {
            return object.getTitle();
        }

    };

    fileTable.cellTable.addColumn(firstNameColumn);

    List<FileNode> fileNodes = new ArrayList<FileNode>();

    for (String file : files) {
        FileNode node = filesMap.get(file);
        fileNodes.add(node);
        fileTable.selectionFileModel.setSelected(node, valForAll);
    }
    ListDataProvider<FileNode> dataProvider = new ListDataProvider<FileNode>(fileNodes);

    dataProvider.addDataDisplay(fileTable.cellTable);

    existingFileSets.put(selectedCollection, fileTable);
    return fileTable.cellTable;
}