Example usage for com.google.gwt.user.client.ui Label addClickHandler

List of usage examples for com.google.gwt.user.client.ui Label addClickHandler

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui Label addClickHandler.

Prototype

public HandlerRegistration addClickHandler(ClickHandler handler) 

Source Link

Usage

From source file:org.dataconservancy.dcs.access.client.model.JsCreator.java

License:Apache License

public static Widget display(JsArray<JsCreator> array) {
    FlexTable table = Util.createTable();

    for (int i = 0; i < array.length(); i++) {
        final JsCreator creator = array.get(i);

        Label creatorLbl = Util.label(creator.getCreatorName(), "Hyperlink");
        table.setWidget(0, i + 1, creatorLbl);
        creatorLbl.addClickHandler(new ClickHandler() {

            @Override/*from w ww  .java  2  s  . com*/
            public void onClick(ClickEvent event) {
                Window.open(creator.getCreatorId(), "_blank", "");
            }
        });
    }

    return table;
}

From source file:org.dataconservancy.dcs.access.client.model.JsDeliverableUnit.java

License:Apache License

public Widget display(CellTree tree, boolean allowDownload) {
    FlowPanel panel = new FlowPanel();

    panel.setStylePrimaryName("Entity");
    Button b = new Button("Download (Email download link)");
    //        if(!getCoreMd().getRights().equalsIgnoreCase("restricted"))
    if (allowDownload)
        panel.add(b);/*from  w  w  w  . j av a2 s.c  o  m*/

    b.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            //pop window
            //send email
            // Window.open(Application.datastreamURLnoEncoding(getId()), "_blank", "");
            SeadApp.userService.checkSession(null, new AsyncCallback<UserSession>() {

                @Override
                public void onSuccess(UserSession session) {
                    String emailAddress = null;
                    if (session.isSession())
                        emailAddress = session.getEmail();
                    EmailPopupPanel emailPopup = new EmailPopupPanel(getId(), emailAddress);
                    emailPopup.show();
                }

                @Override
                public void onFailure(Throwable caught) {
                    new ErrorPopupPanel("Error:" + caught.getMessage());
                }
            });

        }
    });

    panel.add(Util.label("Core metadata", "SubSectionHeader"));

    panel.add(getCoreMd().display(getId(), tree));

    final FlexTable table = Util.createTable("Publication Date:", "Abstract:", "Site:",
            //"Identifier:",
            "Entity type:", "Creators:", "Parents:",
            //    "Collections:",
            //    "Former refs",
            //     "Metadata refs:",
            //      "Provenance:",
            //     "Surrogate:",
            "Alternate Ids:", "Location:", "ACR Location:", "Lineage:");
    panel.add(table);
    table.setWidth("90%");

    if (getPubdate() != null) {
        table.setWidget(0, 1, new Label(getPubdate()));
    }

    if (getAbstract() != null) {
        FlowPanel abstractPanel = new FlowPanel();
        abstractPanel.add(new Label(getAbstract()));
        table.setWidget(1, 1, abstractPanel);
    }

    if (getSite() != null) {
        table.setWidget(2, 1, new Label(getSite()));
    }

    //table.setWidget(3, 1, Util.entityLink(getId()));

    table.setText(3, 1, "Collection");
    table.setWidget(4, 1, JsCreator.display(getCreators()));
    if (getParents() != null) {
        table.setWidget(5, 1, Util.entityLinks(getParents()));
    }

    /*    if (getCollections() != null) {
    table.setWidget(6, 1, Util.entityLinks(getCollections()));
    }
            
    table.setText(7, 1, toString(getFormerExternalRefs()));
    table.setWidget(8, 1, Util.metadataLinks(getMetadataRefs()));
    table.setText(10, 1, isDigitalSurrogate() == null ? "Unknown" : ""
        + isDigitalSurrogate());
    */
    Panel locationPanel = new FlowPanel();
    if (getPrimaryDataLocation() != null)
        locationPanel.add(getPrimaryDataLocation().display());

    if (getAlternateIds() != null) {
        JsArray<JsAlternateId> altIds = getAlternateIds();
        FlowPanel altIdPanel = new FlowPanel();
        FlowPanel altLocPanel = new FlowPanel();

        int doiFlag1 = 0;
        for (int i = 0; i < altIds.length(); i++) {
            String altIdStr;
            altIdStr = altIds.get(i).getIdValue();

            final String finalLink;
            if (!altIds.get(i).getTypeId().equalsIgnoreCase("storage_format")) {
                if (altIds.get(i).getTypeId().equals("medici")) {
                    finalLink = "http://nced.ncsa.illinois.edu/acr/#collection?uri="
                            + altIds.get(i).getIdValue();
                    altIdStr = getCoreMd().getTitle();
                } else
                    finalLink = altIdStr;

                Label altIdLabel = Util.label(altIdStr, "Hyperlink");
                altIdLabel.addClickHandler(new ClickHandler() {

                    @Override
                    public void onClick(ClickEvent event) {
                        Window.open(finalLink, "_blank", "");
                    }
                });

                if (altIds.get(i).getTypeId().equals("medici")) {

                    altLocPanel.add(altIdLabel);
                } else
                    altIdPanel.add(altIdLabel);
            }

        }
        table.setWidget(6, 1, altIdPanel);
        table.setWidget(8, 1, altLocPanel);

    }

    if (getDataLocations() != null) {
        JsArray<JsDataLocation> locs = getDataLocations();
        for (int i = 0; i < locs.length(); i++) {

            String location = locs.get(i).getLocation();

            if (locs.get(i).getName().contains("SDA"))
                location = "https://www.sdarchive.iu.edu";
            Image image;

            if (locs.get(i).getType().contains("IU"))
                image = new Image("images/IU_Scholarworks.jpg");
            else if (locs.get(i).getType().contains("Ideals")) {
                image = new Image("images/Ideals.png");
                location = location.replace("xmlui/", "");
            } else
                image = new Image("images/local.jpg");

            Label locationLabel;

            location = location.replace("jspui", "iuswdark");
            final String finalLink = location;
            if (!locs.get(i).getName().contains("SDA")) {
                locationLabel = Util.label(location, "Hyperlink");
                locationLabel.addClickHandler(new ClickHandler() {

                    @Override
                    public void onClick(ClickEvent event) {
                        Window.open(finalLink, "_blank", "");

                    }
                });
            } else {
                locationLabel = new Label();
                locationLabel.setText(location);
            }

            FlexTable smallTable = Util.createTable();
            smallTable.setWidget(0, 0, locationLabel);

            smallTable.setWidget(0, 1, image);
            locationPanel.add(smallTable);
        }
    }
    table.setWidget(7, 1, locationPanel);

    //        if (getMetadata() != null && getMetadata().length() > 0) {
    //            panel.add(Util.label("Additional metadata", "SubSectionHeader"));
    //            JsMetadata.display(panel, getMetadata());
    //        }

    if (getRelations() != null && getRelations().length() > 0) {
        panel.add(Util.label("Relations", "SubSectionHeader"));
        JsRelation.display(panel, getRelations());
    }

    /*        TreeDemo demo = new TreeDemo();
            demo.setId(getId());
            demo.start();
            table.setWidget(9, 1, demo);
    */
    return panel;
}

From source file:org.dataconservancy.dcs.access.client.model.JsFile.java

License:Apache License

public Widget display() {
    FlowPanel panel = new FlowPanel();

    if (!getSource().isEmpty()) {

        Button b = new Button("Download");
        panel.add(b);//w ww  . j a  v a2  s . com

        b.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                String source = SeadApp.datastreamURLnoEncoding(getId().replace(":", "%3A"));

                String strWindowFeatures = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes";
                Window.open(source, "_blank", strWindowFeatures);
            }
        });

        //panel.add(new Anchor("Download", false, getSource(), "_blank"));
    }

    final FlexTable table = Util.createTable(//"Id",
            "Entity type", "Name", "Appears in Collections", "Size", "Valid", "Extant", "Metadata refs",
            "Alternate Ids", "Primary Location", "ACR Location");

    Util.addColumn(table,
            // null,
            "File", getName(), null, "" + getSizeBytes() + " bytes",
            getValid() == null ? "Unknown" : "" + getValid(), "" + isExtant());

    // table.setWidget(0, 1, Util.entityLink(getId()));

    JsonpRequestBuilder rb = new JsonpRequestBuilder();
    String parentdu = SeadApp.accessurl + SeadApp.queryPath + "?q=" + "id:(\"" + getParent() + "\")"
            + "&offset=0&max=200";
    rb.requestObject(parentdu, new AsyncCallback<JsSearchResult>() {

        public void onFailure(Throwable caught) {
            Window.alert("Failed");
        }

        public void onSuccess(JsSearchResult dus) {

            FlowPanel desc = new FlowPanel();

            for (int i = 0; i < dus.matches().length(); i++) {
                JsMatch m = dus.matches().get(i);

                JsDeliverableUnit entity = (JsDeliverableUnit) m.getEntity();

                //System.out.println("Title="+entity.getCoreMd().getTitle());
                desc.add(new Hyperlink(" " + entity.getCoreMd().getTitle(), true,
                        SeadState.ENTITY.toToken(entity.getId())));
            }
            table.setWidget(2, 1, desc);
        }
    });

    if (getMetadataRefs() != null) {
        table.setWidget(6, 1, Util.entityLinks(getMetadataRefs()));
    }

    FlowPanel primaryLocPanel = new FlowPanel();

    if (getPrimaryDataLocation() != null)
        primaryLocPanel.add(getPrimaryDataLocation().display());

    if (getAlternateIds() != null) {
        final JsArray<JsAlternateId> altIds = getAlternateIds();
        FlowPanel altIdPanel = new FlowPanel();
        final FlowPanel altLocPanel = new FlowPanel();

        for (int i = 0; i < altIds.length(); i++) {

            final String type = altIds.get(i).getTypeId();
            final String value = altIds.get(i).getIdValue();
            AsyncCallback<List<MediciInstance>> callback = new AsyncCallback<List<MediciInstance>>() {

                @Override
                public void onSuccess(List<MediciInstance> result) {
                    for (MediciInstance instance : result) {
                        if (instance.getType().equalsIgnoreCase(type)) {
                            final String finalLink = instance.getUrl() + "/#dataset?id=" + value;
                            String altIdStr = getName();

                            Label altIdLabel = Util.label(altIdStr, "Hyperlink");
                            altIdLabel.addClickHandler(new ClickHandler() {
                                @Override
                                public void onClick(ClickEvent event) {
                                    Window.open(finalLink, "_blank", "");

                                }
                            });
                            altLocPanel.add(altIdLabel);
                            break;
                        }

                    }

                }

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

                }
            };
            MediciIngestPresenter.mediciService.getAcrInstances(callback);

        }
        table.setWidget(7, 1, altIdPanel);
        table.setWidget(8, 1, primaryLocPanel);
        table.setWidget(9, 1, altLocPanel);
    }

    //belongs to dataset
    panel.add(table);

    if (getFormats() != null && getFormats().length() > 0) {
        panel.add(Util.label("Formats", "SubSectionHeader"));
        JsFormat.display(panel, getFormats());
    }

    if (getMetadata() != null && getMetadata().length() > 0) {
        panel.add(Util.label("Additional metadata", "SubSectionHeader"));
        JsMetadata.display(panel, getMetadata());
    }

    if (getFixity() != null && getFixity().length() > 0) {
        panel.add(Util.label("Fixity", "SubSectionHeader"));
        JsFixity.display(panel, getFixity());
    }

    return panel;
}

From source file:org.dataconservancy.dcs.access.client.model.JsMetadata.java

License:Apache License

public Widget display() {

    String label = getSchemaUri().isEmpty() ? "Schema: Unknown" : "Schema: " + getSchemaUri();
    final String inputXml = getMetadata().replace("\n", "").replace("\t", "");

    final DisclosurePanel dp = new DisclosurePanel(label);
    dp.setAnimationEnabled(true);/*from ww w .jav  a 2 s .  com*/
    Label export = new Label();
    export.setText("Convert to ISO");
    export.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            try {
                transformer.xslTransform(Name.FGDC, Name.ISO19115, inputXml, new AsyncCallback<String>() {

                    @Override
                    public void onFailure(Throwable caught) {
                        Window.alert("Unable to transform");

                    }

                    @Override
                    public void onSuccess(String output) {

                        HTML html = new HTML(output);
                        dp.setContent(html);
                        System.out.println(html);

                    }
                });
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });

    dp.add(export);

    final AsyncCallback<String> transformCb = new AsyncCallback<String>() {

        @Override
        public void onFailure(Throwable caught) {
            Window.alert("Unable to transform");

        }

        @Override
        public void onSuccess(String fgdcHtml) {

            HTML html = new HTML(fgdcHtml);
            dp.add(html);
            //dp.setContent(html);
        }
    };

    AsyncCallback<Name> validateCb = new AsyncCallback<Name>() {

        @Override
        public void onFailure(Throwable caught) {
            Window.alert("Unable to validate");

        }

        @Override
        public void onSuccess(Name result) {
            if (result != null) {
                try {
                    transformer.xslTransform(result, Name.HTML, inputXml, transformCb);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            } else
                Window.alert("Does not match any of the existing schemas");
        }

    };

    transformer.validateXML(inputXml, getSchemaUri(), validateCb);
    return dp;
}

From source file:org.dataconservancy.dcs.access.client.model.JsPrimaryDataLocation.java

License:Apache License

public Widget display() {

    FlexTable smallTable = Util.createTable();
    Image image;/*from  w  ww .  j  a v  a2s .  c  o m*/

    if (getLocation() != null) {
        String location = getLocation().replace("jspui", "iuswdark").replace("sword/deposit",
                "iuswdark/handle");
        if (getType() != null)
            if (getType().contains("dspace") && getName().contains("Ideals"))
                location = location.replace("xmlui/", "");
        final String locationLink = location;
        Label locationLabel;
        if (!getName().contains("SDA")) {
            locationLabel = Util.label(location, "Hyperlink");
            locationLabel.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    Window.open(locationLink, "_blank", "");
                }
            });
        } else {
            locationLabel = new Label();
            locationLabel.setText(location);
        }

        if (!location.contains("communities"))
            smallTable.setWidget(0, 0, locationLabel);
    }

    if (getType() != null) {
        if (getType().contains("dspace") && getName().contains("local")) {
            image = new Image("images/local_dspace.jpg");
            smallTable.setWidget(0, 1, image);
        } else if (getType().contains("dspace") && getName().contains("IU")) {
            image = new Image("images/IU_Scholarworks.jpg");
            smallTable.setWidget(0, 1, image);
        } else if (getName().contains("SDA")) {
            image = new Image("images/hpss.jpg");
            smallTable.setWidget(0, 1, image);
        } else if (getType().contains("dspace") && getName().contains("Ideals")) {
            image = new Image("images/Ideals.png");
            smallTable.setWidget(0, 1, image);
        }
    }

    return smallTable;
}

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

License:Apache License

@Override
public void bind() {

    //      loginTab = this.display.getLoginTab();
    errorLabel = this.display.getError();
    userNameLbl = this.display.getUserLabel();
    googleLogin = this.display.getGoogleLogin();
    userLoginDetails = display.getUserLoginDetails();
    userRegisterDetails = display.getUserRegisterDetails();
    Auth.export();/*from  w  ww.  j av  a 2 s. c  o m*/

    this.display.getDisclosurePanel().addOpenHandler(new OpenHandler<DisclosurePanel>() {

        @Override
        public void onOpen(OpenEvent<DisclosurePanel> event) {
            vivo.getPeople(new AsyncCallback<Set<Person>>() {

                @Override
                public void onSuccess(Set<Person> result) {
                    MultiWordSuggestOracle oracle = new MultiWordSuggestOracle();
                    for (Person person : result) {
                        oracle.add(person.getFirstName() + " " + person.getLastName() + ";"
                                + person.getEmailAddress());
                    }
                    userRegisterDetails.suggestBox = new SuggestBox(oracle);
                    userRegisterDetails.suggestBox.ensureDebugId("cwSuggestBox");
                    display.getRegisterForm().setWidget(5, 1, userRegisterDetails.suggestBox);
                }

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

                }
            });
        }
    });

    ClickHandler register = new ClickHandler() {
        public void onClick(ClickEvent event) {

            if (userRegisterDetails.suggestBox.getText() == null
                    || userRegisterDetails.suggestBox.getText().length() == 0) {
                userRegisterDetails.errorMessage.setText("Error: VIVO ID cannot be empty.");
                return;
            }

            AsyncCallback<String> cb = new AsyncCallback<String>() {

                public void onSuccess(String result) {
                    if (result.equalsIgnoreCase("success")) {
                        display.getDisclosurePanel().setOpen(false);
                        errorLabel.setText(
                                "You have requested an account. Please wait for an administrator to provide you the necessary authorization.");
                    } else
                        userRegisterDetails.errorMessage.setText("Error: " + result + " Please try again.");

                }

                public void onFailure(Throwable error) {
                    new ErrorPopupPanel("Failed to register: " + error.getMessage()).show();
                }

            };

            user.register(userRegisterDetails.firstName.getText(), userRegisterDetails.lastName.getText(),
                    userRegisterDetails.email.getText(), userRegisterDetails.password.getText(), SeadApp.admins,
                    userRegisterDetails.suggestBox.getText(), //vivoId
                    cb);

        }
    };
    this.display.getRegisterButton().addClickHandler(register);

    final AsyncCallback<Authentication> authenticateCB = new AsyncCallback<Authentication>() {

        public void onSuccess(Authentication result) {

            if (result.authResult()) {
                //                           loginTab.clear();
                display.hide1();
                logoutLbl = Util.label("Logout", "LogoutButton");
                ClickHandler logout = new ClickHandler() {

                    @Override
                    public void onClick(ClickEvent event) {
                        //   lPanel.clear();
                        AUTH.clearAllTokens();
                        Label loginLabel = Util.label("Sign In/ Register", "LogoutButton");

                        loginLabel.addClickHandler(new ClickHandler() {

                            @Override
                            public void onClick(ClickEvent event) {
                                History.newItem("login");
                            }
                        });

                        lPanel.add(loginLabel);
                        History.newItem("logout");
                    }
                };

                logoutLbl.addClickHandler(logout);
                lPanel.clear();
                user.checkSession(null, new AsyncCallback<UserSession>() {

                    @Override
                    public void onSuccess(UserSession result) {

                        //   lPanel.add(logoutLbl);
                        History.newItem("upload");
                    }

                    @Override
                    public void onFailure(Throwable caught) {
                        new ErrorPopupPanel("Error:" + caught.getMessage()).show();
                    }
                });

            } else {
                if (result.getErrorMessage().equalsIgnoreCase("Account does not exist")) {
                    AsyncCallback<GoogleDetails> clientDetailsCB = new AsyncCallback<GoogleDetails>() {

                        @Override
                        public void onFailure(Throwable caught) {
                            new ErrorPopupPanel("Unable to retrieve client id:" + caught.getMessage()).show();
                        }

                        @Override
                        public void onSuccess(GoogleDetails details) {
                            final AuthRequest req = new AuthRequest(details.getGoogleAuthUrl(),
                                    details.getClientId()).withScopes(GOOGLE_SCOPE);

                            AUTH.login(req, new Callback<String, Throwable>() {
                                @Override
                                public void onSuccess(String token) {
                                    user.getOAuthDetails(token, OAuthType.GOOGLE, new AsyncCallback<Person>() {

                                        @Override
                                        public void onFailure(Throwable caught) {
                                            new ErrorPopupPanel("Error:" + caught.getMessage()).show();
                                        }

                                        @Override
                                        public void onSuccess(Person user) {
                                            if (!display.getDisclosurePanel().isOpen())
                                                display.getDisclosurePanel().setOpen(true);
                                            userRegisterDetails.firstName.setText(user.getFirstName());
                                            userRegisterDetails.lastName.setText(user.getLastName());
                                            userRegisterDetails.email.setText(user.getEmailAddress());
                                        }
                                    });

                                }

                                @Override
                                public void onFailure(Throwable caught) {
                                    new ErrorPopupPanel("Error:" + caught.getMessage()).show();
                                }

                            });
                        }
                    };
                    googleHelper.getClientId(clientDetailsCB);

                } else {
                    errorLabel.setText(result.getErrorMessage());
                    errorLabel.setStyleName("ErrorField");
                }
            }
        }

        public void onFailure(Throwable error) {
            new ErrorPopupPanel("Error: " + error.getMessage()).show();
        }
    };

    this.display.getLoginButton().addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent arg0) {
            user.authenticate(deposit_endpoint, userLoginDetails.user_tb.getText(),
                    userLoginDetails.pass_tb.getText(), authenticateCB);
        }
    });

    userLoginDetails.pass_tb.addKeyDownHandler(new KeyDownHandler() {

        @Override
        public void onKeyDown(KeyDownEvent event) {
            if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER)
                user.authenticate(deposit_endpoint, userLoginDetails.user_tb.getText(),
                        userLoginDetails.pass_tb.getText(), authenticateCB);
        }
    });

    userRegisterDetails.confirmPassword.addKeyDownHandler(new KeyDownHandler() {

        @Override
        public void onKeyDown(KeyDownEvent event) {
            if (event.getNativeKeyCode() == KeyCodes.KEY_TAB) {
                if (!userRegisterDetails.password.getText()
                        .equals(userRegisterDetails.confirmPassword.getText())) {
                    userRegisterDetails.errorMessage.setText("Passwords should match.");
                    display.getRegisterButton().setEnabled(false);
                } else if (userRegisterDetails.password.getText().length() < 6) {
                    userRegisterDetails.errorMessage
                            .setText("Please ensure password contains atleast 6 characters.");
                    display.getRegisterButton().setEnabled(false);
                } else {
                    userRegisterDetails.errorMessage.setText("");
                    display.getRegisterButton().setEnabled(true);
                }
            }
        }
    });

    googleLogin.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {

            AsyncCallback<GoogleDetails> clientDetailsCB = new AsyncCallback<GoogleDetails>() {

                @Override
                public void onFailure(Throwable caught) {
                    new ErrorPopupPanel("Unable to retrieve client id:" + caught.getMessage()).show();
                }

                @Override
                public void onSuccess(GoogleDetails details) {
                    final AuthRequest req = new AuthRequest(details.getGoogleAuthUrl(), details.getClientId())
                            .withScopes(GOOGLE_SCOPE);

                    AUTH.login(req, new Callback<String, Throwable>() {
                        @Override
                        public void onSuccess(String token) {

                            user.authenticateOAuth(token, OAuthType.GOOGLE, SeadApp.admins, authenticateCB);

                        }

                        @Override
                        public void onFailure(Throwable caught) {
                            new ErrorPopupPanel("Error:" + caught.getMessage()).show();
                        }

                    });
                }
            };
            googleHelper.getClientId(clientDetailsCB);
        }
    });

}

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

License:Apache License

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

        @Override/*  w  w  w . ja v a 2  s  .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.SeadApp.java

License:Apache License

private void historyChanged(String token) {

    if (token.isEmpty()) {
        if (facetOuterPanel.isAttached()) {
            main.setWidgetSize(facetOuterPanel, 0);
        }/*from www .  ja v a 2 s  .co m*/

        if (!centerPanel.isAttached())
            main.add(centerPanel);

        activityPage.setStyleName("Option");
        adminPage.setStyleName("Option");
        home.setStyleName("OptionSelected");
        uploadData.setStyleName("Option");
        curatorPage.setStyleName("Option");
        isHome = true;

        selectedItems = new HashMap<String, List<String>>();
        SearchInput input = new SearchInput(null, null, 0, new String[0], new String[0]);
        FacetedSearchPresenter.EVENT_BUS = GWT.create(SimpleEventBus.class);
        presenter = new FacetedSearchPresenter(new FacetedSearchView());
        presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);

        FacetedSearchPresenter.EVENT_BUS.fireEvent(new SearchEvent(input, false));
        return;
    }

    SeadState state = SeadState.fromToken(token);
    final List<String> args = SeadState.tokenArguments(token);

    if (state == null) {
        handleHistoryTokenError(token);
        return;
    }

    //Browse appears to be the only panel that hides the login/logout panel
    //This will reset it whenever people go to another page/token
    if (state != SeadState.BROWSE) {
        main.setWidgetSize(loginPanel, 200);
        loginPanel.setVisible(true);

    }
    if (state == SeadState.HOME) {

        if (facetOuterPanel.isAttached()) {
            main.setWidgetSize(facetOuterPanel, 0);
            facetOuterPanel.setVisible(false);
        }

        if (!centerPanel.isAttached())
            main.add(centerPanel);

        userService.checkSession(null, loginCallback);

        isHome = true;

        selectedItems = new HashMap<String, List<String>>();
        SearchInput input = new SearchInput(null, null, 0, new String[0], new String[0]);
        FacetedSearchPresenter.EVENT_BUS = GWT.create(SimpleEventBus.class);
        presenter = new FacetedSearchPresenter(new FacetedSearchView());
        presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);

        FacetedSearchPresenter.EVENT_BUS.fireEvent(new SearchEvent(input, false));
    } else if (state == SeadState.ADVANCED) {
        if (facetOuterPanel.isAttached()) {
            main.setWidgetSize(facetOuterPanel, 250);
            facetOuterPanel.setVisible(true);

            if (!centerPanel.isAttached())
                main.add(centerPanel);

            dataSearch.setStyleName("OptionSelected");
            uploadData.setStyleName("Option");
            adminPage.setStyleName("Option");
            dataHistory.setStyleName("Option");

            selectedItems = new HashMap<String, List<String>>();
            SearchInput input = new SearchInput(null, null, 0, new String[0], new String[0]);
            FacetedSearchPresenter.EVENT_BUS = GWT.create(SimpleEventBus.class);
            presenter = new FacetedSearchPresenter(new FacetedSearchView());
            presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);

            FacetedSearchPresenter.EVENT_BUS.fireEvent(new SearchEvent(input, true));
        }
    } else if (state == SeadState.BROWSE) {
        if (facetOuterPanel.isAttached()) {
            main.setWidgetSize(facetOuterPanel, 250);
            facetOuterPanel.setVisible(true);
        } else
            main.addWest(facetOuterPanel, 250);
        facetOuterPanel.setVisible(true);

        if (!centerPanel.isAttached())
            main.add(centerPanel);
        if (loginPanel.isAttached()) {
            main.setWidgetSize(loginPanel, 0);
            loginPanel.setVisible(false);
        }

        UserField[] userfields = new UserField[1];
        String[] userqueries = new String[1];
        String facetFields[] = new String[1];
        String facetValues[] = new String[1];

        userfields[0] = UserField.ABSTRACT;
        userqueries[0] = "'' TO *";
        facetFields[0] = "entityType";
        facetValues[0] = "Collection";

        SearchInput input = new SearchInput(userfields, userqueries, 0, facetFields, facetValues);
        FacetedSearchPresenter.EVENT_BUS = GWT.create(SimpleEventBus.class);
        presenter = new FacetedSearchPresenter(new FacetedSearchView());
        presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);
        selectedItems = new HashMap<String, List<String>>();

        FacetedSearchPresenter.EVENT_BUS.fireEvent(new SearchEvent(input, false));
        return;

    }

    else if (state == SeadState.SEARCH) {
        if (facetOuterPanel.isAttached()) {
            main.setWidgetSize(facetOuterPanel, 250);
            facetOuterPanel.setVisible(true);
        } else
            main.addWest(facetOuterPanel, 250);
        facetOuterPanel.setVisible(true);
        if (!centerPanel.isAttached())
            main.add(centerPanel);
        /*   if(loginPanel.isAttached()){
           main.setWidgetSize(loginPanel, 0);
           }*/
        userService.checkSession(null, loginCallback);
        if (args.size() == 0) {
            SearchInput input = new SearchInput(null, null, 0, new String[0], new String[0]);
            FacetedSearchPresenter.EVENT_BUS = GWT.create(SimpleEventBus.class);
            presenter = new FacetedSearchPresenter(new FacetedSearchView());
            presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);
            selectedItems = new HashMap<String, List<String>>();

            FacetedSearchPresenter.EVENT_BUS.fireEvent(new SearchEvent(input, false));
            return;
        }

        /* if (args.size() < 2 || (args.size() & 1) == 0) {
        handleHistoryTokenError(token);
        return;
        }
        */
        int offset = 0;

        //get facets args.get(args.size()-2) & args.get(args.size()-3)

        String[] facetFields = null;
        String[] facetValues = null;
        int facetCount = 0;
        try {
            facetCount = Integer.parseInt(args.get(args.size() - 1));
        } catch (NumberFormatException e) {
            handleHistoryTokenError(token);
            return;
        }

        selectedItems = new HashMap<String, List<String>>();
        isHome = false;

        int userFieldsLength = (args.size() - 2 - facetCount * 2) / 2;
        UserField[] userfields = new UserField[userFieldsLength];
        String[] userqueries = new String[userFieldsLength];

        int argIndex = -1;
        for (int i = 0; i < userFieldsLength; i++) {
            userfields[i] = UserField.valueOf(args.get(++argIndex));
            userqueries[i] = args.get(++argIndex);

            if (userfields[i] == null) {
                handleHistoryTokenError(token);
                return;
            }
        }

        facetFields = new String[facetCount];
        facetValues = new String[facetCount];
        for (int i = 0; i < facetCount; i++) {
            facetFields[i] = args.get(++argIndex);
            facetValues[i] = args.get(++argIndex);
            List<String> childFacets = selectedItems.get(facetFields[i]);

            if (childFacets == null)
                childFacets = new ArrayList<String>();
            childFacets.add(facetValues[i]);
            selectedItems.put(facetFields[i], childFacets);

        }

        SearchInput input = new SearchInput(userfields, userqueries, offset, facetFields, facetValues);

        FacetedSearchPresenter.EVENT_BUS = GWT.create(SimpleEventBus.class);
        presenter = new FacetedSearchPresenter(new FacetedSearchView());//);
        presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);

        FacetedSearchPresenter.EVENT_BUS.fireEvent(new SearchEvent(input, false));
    } else if (state == SeadState.ENTITY) {
        if (facetOuterPanel.isAttached()) {
            main.setWidgetSize(facetOuterPanel, 0);
            facetOuterPanel.setVisible(false);
        }
        if (!centerPanel.isAttached())
            main.add(centerPanel);

        if (args.size() != 1) {
            handleHistoryTokenError(token);
            return;
        }
        userService.checkSession(null, loginCallback);
        presenter = new EntityPresenter(new EntityView(args.get(0)));
        presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);

    } else if (state == SeadState.RELATED) {
        if (facetOuterPanel.isAttached()) {
            main.setWidgetSize(facetOuterPanel, 0);
            facetOuterPanel.setVisible(false);
        }
        if (!centerPanel.isAttached())
            main.add(centerPanel);
        /*if(loginPanel.isAttached()){
           main.setWidgetSize(loginPanel, 0);
           }*/
        if (outerMoreLinks.isAttached()) {
            main.setWidgetSize(outerMoreLinks, 0);
        }
        if (args.size() != 1) {
            handleHistoryTokenError(token);
            return;
        }
        userService.checkSession(null, loginCallback);
        presenter = new RelationsPresenter(new RelationsView(args.get(0)));
        presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);
    } else if (state == SeadState.CURATIONOBJECT) {
        if (facetOuterPanel.isAttached()) {
            main.setWidgetSize(facetOuterPanel, 0);
            facetOuterPanel.setVisible(false);
        }
        if (!centerPanel.isAttached())
            main.add(centerPanel);
        /*if(loginPanel.isAttached()){
           main.setWidgetSize(loginPanel, 0);
           }*/
        if (outerMoreLinks.isAttached()) {
            main.setWidgetSize(outerMoreLinks, 0);
        }
        if (args.size() != 1) {
            handleHistoryTokenError(token);
            return;
        }
        userService.checkSession(null, loginCallback);
        presenter = new CurationObjectPresenter(new CurationView(args.get(0)));
        presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);
    } else if (state == SeadState.LOGIN) {
        try {
            presenter = new LoginPresenter(new LoginPopupPanel());
            presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);

        } catch (Exception e) {
            e.printStackTrace();
        }

    } else if (state == SeadState.LOGOUT) {
        if (!centerPanel.isAttached())
            main.add(centerPanel);

        AsyncCallback<Void> cb = new AsyncCallback<Void>() {

            public void onSuccess(Void result) {

                initNoLogin();
                History.newItem(SeadState.HOME.toToken());
            }

            public void onFailure(Throwable error) {
                Window.alert("Failed to logout: " + error.getMessage());

            }
        };

        userService.clearSession(cb);

    } else if (state == SeadState.CURATOR) {
        if (args.size() > 0)
            History.newItem(SeadState.CURATOR.toToken());
        if (!centerPanel.isAttached())
            main.add(centerPanel);
        if (facetOuterPanel.isAttached()) {
            main.setWidgetSize(facetOuterPanel, 0);
            facetOuterPanel.setVisible(false);
        }

        AsyncCallback<UserSession> cb = new AsyncCallback<UserSession>() {

            public void onSuccess(UserSession result) {

                if (result.isSession()) {

                    if (result.getRole() == Role.ROLE_CURATOR) {
                        initCuratorLogin();
                    } else if (result.getRole() == Role.ROLE_ADMIN) {
                        initAdminLogin();
                    } else {
                        History.newItem(SeadState.HOME.toToken()); //no permissions
                    }
                    initLogoutButton();
                    if (!logoutButton.isAttached())
                        loginPanel.add(logoutButton);
                    //  History.newItem("upload");
                } else
                    History.newItem(SeadState.LOGIN.toToken());

            }

            public void onFailure(Throwable error) {
                Window.alert("Failed to login: " + error.getMessage());
            }
        };

        curatorPage.setStyleName("OptionSelected");
        adminPage.setStyleName("Option");
        home.setStyleName("Option");
        uploadData.setStyleName("Option");

        userService.checkSession(null, cb);
        presenter = new CuratorViewPresenter(new CuratorView());
        presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);

    } else if (state == SeadState.PROV) {
        if (!centerPanel.isAttached())
            main.add(centerPanel);
        if (facetOuterPanel.isAttached()) {
            main.setWidgetSize(facetOuterPanel, 0);
            facetOuterPanel.setVisible(false);
        }

        AsyncCallback<UserSession> cb = new AsyncCallback<UserSession>() {

            public void onSuccess(UserSession result) {

                if (result.isSession()) {

                    if (result.getRole() == Role.ROLE_ADMIN) {
                        initAdminLogin();
                    } else if (result.getRole() == Role.ROLE_CURATOR) {
                        initCuratorLogin();
                    } else {
                        initUserLogin();
                    }
                    initLogoutButton();

                    String displayName = "";
                    if (result.getfName() != null)
                        displayName = result.getfName();
                    if (result.getlName() != null)
                        displayName += " " + result.getlName();

                    Label displayNameLabel = new Label();
                    displayNameLabel.setStyleName("welcomeFont");
                    displayNameLabel.setText("Welcome " + displayName);
                    loginPanel.clear();
                    loginPanel.add(displayNameLabel);

                    if (!logoutButton.isAttached())
                        loginPanel.add(logoutButton);
                    activityPage.setStyleName("OptionSelected");
                    adminPage.setStyleName("Option");
                    home.setStyleName("Option");
                    uploadData.setStyleName("Option");
                    curatorPage.setStyleName("Option");
                } else
                    History.newItem(SeadState.LOGIN.toToken());

            }

            public void onFailure(Throwable error) {
                Window.alert("Failed to login: " + error.getMessage());

            }
        };

        userService.checkSession(null, cb);
        presenter = new EntityProvPresenter(new EntityProvView(args.get(0)));
        presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);

    } else if (state == SeadState.EDIT) {
        if (!centerPanel.isAttached())
            main.add(centerPanel);
        if (facetOuterPanel.isAttached()) {
            main.setWidgetSize(facetOuterPanel, 0);
            facetOuterPanel.setVisible(false);
        }
        List<String> tempargs = SeadState.tokenArguments(token);

        curatorPage.setStyleName("OptionSelected");
        adminPage.setStyleName("Option");
        home.setStyleName("Option");
        uploadData.setStyleName("Option");

        userService.checkSession(null, logincallback2);

        presenter = new EditPresenter(new EditView(tempargs.get(0)));
        presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);

    } else if (state == SeadState.ACTIVITY) {
        /*   if(count==0){
           forceReload();
           count++;
           }*/

        if (!centerPanel.isAttached())
            main.add(centerPanel);
        if (facetOuterPanel.isAttached()) {
            main.setWidgetSize(facetOuterPanel, 0);
            facetOuterPanel.setVisible(false);
        }

        AsyncCallback<UserSession> cb = new AsyncCallback<UserSession>() {

            public void onSuccess(UserSession result) {

                if (result.isSession()) {

                    if (result.getRole() == Role.ROLE_ADMIN) {
                        initAdminLogin();
                    } else if (result.getRole() == Role.ROLE_CURATOR) {
                        initCuratorLogin();
                    } else {
                        initUserLogin();
                    }
                    initLogoutButton();

                    String displayName = "";
                    if (result.getfName() != null)
                        displayName = result.getfName();
                    if (result.getlName() != null)
                        displayName += " " + result.getlName();

                    Label displayNameLabel = new Label();
                    displayNameLabel.setStyleName("welcomeFont");
                    displayNameLabel.setText("Welcome " + displayName);
                    loginPanel.clear();
                    loginPanel.add(displayNameLabel);

                    if (!logoutButton.isAttached())
                        loginPanel.add(logoutButton);
                    activityPage.setStyleName("OptionSelected");
                    adminPage.setStyleName("Option");
                    home.setStyleName("Option");
                    uploadData.setStyleName("Option");
                    curatorPage.setStyleName("Option");
                } else
                    History.newItem(SeadState.LOGIN.toToken());

            }

            public void onFailure(Throwable error) {
                Window.alert("Failed to login: " + error.getMessage());

            }
        };

        userService.checkSession(null, cb);
        presenter = new ActivityPresenter(new ActivityView());
        presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);
    } else if (state == SeadState.AUTH) {
        if (!centerPanel.isAttached())
            main.add(centerPanel);
        else
            centerPanel.clear();

        if (facetOuterPanel.isAttached()) {
            main.setWidgetSize(facetOuterPanel, 0);
            facetOuterPanel.setVisible(false);
        }

        dataSearch.setStyleName("Option");
        uploadData.setStyleName("OptionSelected");

        AsyncCallback<UserSession> cb = new AsyncCallback<UserSession>() {
            public void onSuccess(UserSession result) {

                if (result.isSession()) {
                    if (result.getRole() == Role.ROLE_ADMIN) {

                        Label logoutLbl = Util.label("Logout", "LogoutButton");
                        if (args.size() > 0) {
                            ClickHandler logout = new ClickHandler() {

                                @Override
                                public void onClick(ClickEvent event) {
                                    loginPanel.clear();
                                    //                                                loginPanel.add(loginLabel);
                                    History.newItem("logout");
                                }
                            };

                            logoutLbl.addClickHandler(logout);
                            loginPanel.clear();
                            loginPanel.add(logoutLbl);
                        }
                    }
                    History.newItem("upload");
                } else
                    History.newItem("login");
            }

            public void onFailure(Throwable error) {
                Window.alert("Failed to login: " + error.getMessage());
            }
        };

        String argument = null;
        if (args.size() > 0)
            argument = args.get(1);
        userService.checkSession(argument, cb);

    } else if (state == SeadState.UPLOAD) {
        if (args.size() > 0)
            History.newItem(SeadState.UPLOAD.toToken());
        if (facetOuterPanel.isAttached())
            main.setWidgetSize(facetOuterPanel, 0);
        facetOuterPanel.setVisible(false);

        if (!centerPanel.isAttached())
            main.add(centerPanel);

        AsyncCallback<UserSession> cb = new AsyncCallback<UserSession>() {

            public void onSuccess(UserSession result) {
                if (result.isSession()) {
                    if (result.getRole() == Role.ROLE_ADMIN)
                        initAdminLogin();
                    else if (result.getRole() == Role.ROLE_CURATOR)
                        initCuratorLogin();
                    else
                        initUserLogin();
                    initLogoutButton();
                    String displayName = "";
                    if (result.getfName() != null)
                        displayName = result.getfName();
                    if (result.getlName() != null)
                        displayName += " " + result.getlName();

                    Label displayNameLabel = new Label();
                    displayNameLabel.setStyleName("welcomeFont");
                    displayNameLabel.setText("Welcome " + displayName);
                    loginPanel.clear();
                    loginPanel.add(displayNameLabel);

                    if (!logoutButton.isAttached())
                        loginPanel.add(logoutButton);
                    //  History.newItem("upload");
                    curatorPage.setStyleName("Option");
                    adminPage.setStyleName("Option");
                    home.setStyleName("Option");
                    uploadData.setStyleName("OptionSelected");
                } else
                    History.newItem(SeadState.LOGIN.toToken());

            }

            public void onFailure(Throwable error) {
                Window.alert("Failed to login: " + error.getMessage());

            }
        };

        userService.checkSession(null, cb);

        centerPanel.clear();
        centerPanel.add(publishData);
        presenter = new PublishDataPresenter(new PublishDataView());
        presenter.display(publishData, facetContent, header, loginPanel, notificationPanel);

    } else if (state == SeadState.ACRUPLOAD) {
        if (facetOuterPanel.isAttached())
            main.setWidgetSize(facetOuterPanel, 0);
        facetOuterPanel.setVisible(false);

        if (!centerPanel.isAttached())
            main.add(centerPanel);

        AsyncCallback<UserSession> cb = new AsyncCallback<UserSession>() {

            public void onSuccess(UserSession result) {
                if (result.isSession()) {
                    if (result.getRole() == Role.ROLE_ADMIN)
                        initAdminLogin();
                    else if (result.getRole() == Role.ROLE_CURATOR)
                        initCuratorLogin();
                    else
                        initUserLogin();
                    initLogoutButton();
                    String displayName = "";
                    if (result.getfName() != null)
                        displayName = result.getfName();
                    if (result.getlName() != null)
                        displayName += " " + result.getlName();

                    Label displayNameLabel = new Label();
                    displayNameLabel.setStyleName("welcomeFont");
                    displayNameLabel.setText("Welcome " + displayName);
                    loginPanel.clear();
                    loginPanel.add(displayNameLabel);

                    if (!logoutButton.isAttached())
                        loginPanel.add(logoutButton);
                    //  History.newItem("upload");
                    curatorPage.setStyleName("Option");
                    adminPage.setStyleName("Option");
                    home.setStyleName("Option");
                    uploadData.setStyleName("OptionSelected");
                } else
                    History.newItem(SeadState.LOGIN.toToken());

            }

            public void onFailure(Throwable error) {
                Window.alert("Failed to login: " + error.getMessage());

            }
        };

        userService.checkSession(null, cb);

        centerPanel.clear();
        centerPanel.add(publishData);
        presenter = new AcrPublishDataPresenter(new AcrPublishDataView());
        presenter.display(publishData, facetContent, header, loginPanel, notificationPanel);

    } else if (state == SeadState.ADMIN) {

        if (!centerPanel.isAttached())
            main.add(centerPanel);
        AsyncCallback<UserSession> cb = new AsyncCallback<UserSession>() {

            public void onSuccess(UserSession result) {

                if (result.isSession()) {
                    if (result.getRole() == Role.ROLE_ADMIN) {

                        initAdminLogin();
                    } else
                        History.newItem(SeadState.HOME.toToken());//no permissions
                } else
                    History.newItem("login");
            }

            public void onFailure(Throwable error) {
                Window.alert("Failed to login: " + error.getMessage());

            }
        };
        userService.checkSession(null, cb);
        presenter = new AdminPresenter(new AdminView());
        presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);

    } else if (state == SeadState.MONITOR) {
        if (facetOuterPanel.isAttached())
            main.setWidgetSize(facetOuterPanel, 0);
        facetOuterPanel.setVisible(false);

        if (!centerPanel.isAttached())
            main.add(centerPanel);
        AsyncCallback<UserSession> cb = new AsyncCallback<UserSession>() {

            public void onSuccess(UserSession result) {

                if (result.isSession()) {
                    if (result.getRole() == Role.ROLE_ADMIN) {
                        initAdminLogin();
                    } else if (result.getRole() == Role.ROLE_CURATOR) {
                        initCuratorLogin();
                    } else {
                        initUserLogin();
                    }
                    initLogoutButton();

                    String displayName = "";
                    if (result.getfName() != null)
                        displayName = result.getfName();
                    if (result.getlName() != null)
                        displayName += " " + result.getlName();

                    Label displayNameLabel = new Label();
                    displayNameLabel.setStyleName("welcomeFont");
                    displayNameLabel.setText("Welcome " + displayName);
                    loginPanel.clear();
                    loginPanel.add(displayNameLabel);

                    if (!logoutButton.isAttached())
                        loginPanel.add(logoutButton);

                    dataHistory.setStyleName("OptionSelected");
                    adminPage.setStyleName("Option");
                    home.setStyleName("Option");
                    uploadData.setStyleName("Option");
                    curatorPage.setStyleName("Option");
                } else
                    History.newItem(SeadState.LOGIN.toToken());

            }

            public void onFailure(Throwable error) {
                Window.alert("Failed to login: " + error.getMessage());

            }
        };

        userService.checkSession(null, cb);

        presenter = new ProvenancePresenter(new ProvenanceView());
        presenter.display(centerPanel, facetContent, header, loginPanel, notificationPanel);

    } else {
        handleHistoryTokenError(token);
        return;
    }
}

From source file:org.dataconservancy.dcs.access.client.SeadApp.java

License:Apache License

private Widget createAccessServiceUrlEditor() {
    FlexTable table = new FlexTable();
    table.setText(0, 0, "");
    table.setStyleName("FooterTable");
    Label aboutLabel = Util.label("About", "Hyperlink");
    Util.addColumn(table, aboutLabel);
    aboutLabel.addStyleName("LeftPad");
    aboutLabel.addClickHandler(new ClickHandler() {
        @Override/*from   w ww.  j a  v a  2s .  c o  m*/
        public void onClick(ClickEvent event) {
            Window.open("http://sead-data.net/", "_blank", "");
        }
    });

    Label faq = Util.label("FAQ", "Hyperlink");
    Util.addColumn(table, faq);
    faq.addStyleName("LeftPad");
    faq.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            Window.open("http://sead-data.net/", "_blank", "");
        }
    });

    Label contactLabel = Util.label("Contact Us", "Hyperlink");
    Util.addColumn(table, contactLabel);
    contactLabel.addStyleName("LeftPad");
    contactLabel.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            Window.open("mailto:seadva-l@indiana.edu", "_blank", "");
        }
    });

    Label privacyLabel = Util.label("Privay Policy", "Hyperlink");
    Util.addColumn(table, privacyLabel);
    privacyLabel.addStyleName("LeftPad");
    privacyLabel.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {

        }
    });

    /*set.addClickHandler(new ClickHandler() {
            
    public void onClick(ClickEvent event) {
        String s = accessurl_tb.getText().trim();
            
        if (!s.isEmpty()) {
            accessurl = s;
            History.fireCurrentHistoryState();
        }
    }
    });*/

    return table;
}

From source file:org.dataconservancy.dcs.access.client.ui.ResultNavigationWidget.java

License:Apache License

public ResultNavigationWidget(final int page, final int numpages, final SearchInput searchInput,
        long totalResults, final boolean isAdvanced) {
    navigationPanel = new HorizontalPanel();
    initWidget(navigationPanel);/* ww w  . ja v  a 2s . co  m*/
    navigationPanel.setStylePrimaryName("ResultsNav");
    //      navigationPanel.setSpacing(2);

    int currentRangeMin = (page) * Constants.MAX_SEARCH_RESULTS + 1;
    int currentRangeMax = (page + 1) * Constants.MAX_SEARCH_RESULTS;
    if (currentRangeMax > totalResults) {
        currentRangeMax = (int) totalResults;
    }
    Label resultNavigator = Util.label("  ", "ResultNavigator");
    if (SeadState.fromToken(History.getToken()) == SeadState.SEARCH) {
        String queries = "";
        if (searchInput.getUserqueries().length > 0) {
            for (int i = 0; i < searchInput.getUserqueries().length; i++) {
                queries += searchInput.getUserqueries()[i];
                if (i < searchInput.getUserqueries().length - 1)
                    queries += ",";
            }
        }

        if (searchInput.getFacetValue().length > 0) {
            if (searchInput.getUserqueries().length > 0)
                queries += ",";
            for (int i = 0; i < searchInput.getFacetField().length; i++) {
                queries += searchInput.getFacetValue()[i];
                if (i < searchInput.getFacetValue().length - 1)
                    queries += ",";
            }
        }
        String showingString = "\"" + queries + "\"\t Showing " + currentRangeMin + " - " + currentRangeMax
                + " out of " + totalResults;
        resultNavigator = Util.label(showingString, "ResultNavigator");
    }
    navigationPanel.add(resultNavigator);

    if (numpages > 1) {
        if (page > 0) {

            Label first = Util.label("<<", "Hyperlink");
            first.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    FacetedSearchPresenter.EVENT_BUS
                            .fireEvent(new SearchEvent(
                                    new SearchInput(searchInput.getUserfields(), searchInput.getUserqueries(),
                                            0, searchInput.getFacetField(), searchInput.getFacetValue()),
                                    isAdvanced));

                }
            });
            navigationPanel.add(first);

            final int offset = (page - 1) * Constants.MAX_SEARCH_RESULTS;

            Label previous = Util.label("Previous", "Hyperlink");
            previous.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    FacetedSearchPresenter.EVENT_BUS
                            .fireEvent(new SearchEvent(
                                    new SearchInput(searchInput.getUserfields(), searchInput.getUserqueries(),
                                            offset, searchInput.getFacetField(), searchInput.getFacetValue()),
                                    isAdvanced));

                }
            });
            navigationPanel.add(previous);
        }

        int max_pages_shown = 10;

        int startpage = page - (max_pages_shown / 2);
        if (startpage < 0) {
            startpage = 0;
        }

        int endpage = startpage + max_pages_shown;

        if (endpage > numpages) {
            endpage = numpages;
        }

        for (int i = startpage; i < endpage; i++) {
            if (i == page) {
                navigationPanel.add(Util.label("" + (i + 1), "CurrentNavigationPage"));
            } else {
                final int offset = i * Constants.MAX_SEARCH_RESULTS;

                Label pageIndex = Util.label(String.valueOf(i + 1), "Hyperlink");
                pageIndex.addClickHandler(new ClickHandler() {

                    @Override
                    public void onClick(ClickEvent event) {
                        FacetedSearchPresenter.EVENT_BUS.fireEvent(new SearchEvent(
                                new SearchInput(searchInput.getUserfields(), searchInput.getUserqueries(),
                                        offset, searchInput.getFacetField(), searchInput.getFacetValue()),
                                isAdvanced));

                    }
                });

                navigationPanel.add(pageIndex);
            }
        }

        if (page < numpages - 1) {
            final int offset = (page + 1) * Constants.MAX_SEARCH_RESULTS;

            Label next = Util.label("Next", "Hyperlink");
            next.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    FacetedSearchPresenter.EVENT_BUS
                            .fireEvent(new SearchEvent(
                                    new SearchInput(searchInput.getUserfields(), searchInput.getUserqueries(),
                                            offset, searchInput.getFacetField(), searchInput.getFacetValue()),
                                    isAdvanced));

                }
            });

            navigationPanel.add(next);

            Label last = Util.label(">>", "Hyperlink");
            last.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    FacetedSearchPresenter.EVENT_BUS
                            .fireEvent(new SearchEvent(
                                    new SearchInput(searchInput.getUserfields(), searchInput.getUserqueries(),
                                            (numpages - 1) * Constants.MAX_SEARCH_RESULTS,
                                            searchInput.getFacetField(), searchInput.getFacetValue()),
                                    isAdvanced));

                }
            });

            navigationPanel.add(last);
        }
    }
}