statistical-algorithms-impo.../src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/create/ProjectFolderSelectionCard....

143 lines
4.2 KiB
Java
Executable File

package org.gcube.portlets.user.statisticalalgorithmsimporter.client.create;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription;
import org.gcube.portlets.widgets.githubconnector.client.util.GWTMessages;
import org.gcube.portlets.widgets.githubconnector.client.wizard.WizardCard;
import org.gcube.portlets.widgets.githubconnector.client.wizard.event.WizardEvent;
import org.gcube.portlets.widgets.githubconnector.client.wizard.event.WizardEventType;
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener;
import org.gcube.portlets.widgets.wsexplorer.client.select.WorkspaceExplorerSelectPanel;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.SimplePanel;
/**
*
* @author Giancarlo Panichi
*
*
*/
public class ProjectFolderSelectionCard extends WizardCard {
private ItemDescription newProjectFolder;
public ProjectFolderSelectionCard() {
super("Setup", "Select the project folder");
try {
WorkspaceExplorerSelectPanel wselectPanel = new WorkspaceExplorerSelectPanel("Select Project Folder", true);
WorskpaceExplorerSelectNotificationListener handler = new WorskpaceExplorerSelectNotificationListener() {
@Override
public void onSelectedItem(Item item) {
if (item.getType() == ItemType.FOLDER||item.getType() == ItemType.PRIVATE_FOLDER
||item.getType() == ItemType.SHARED_FOLDER||item.getType() == ItemType.VRE_FOLDER) {
createNewProjectFolder(item);
} else {
newProjectFolder = null;
GWTMessages.alert("Attention", "Select a valid project folder!", getZIndex());
}
}
@Override
public void onFailed(Throwable throwable) {
Log.error("Error in create project: " + throwable.getLocalizedMessage(), throwable);
showErrorAndHide("Error", throwable.getLocalizedMessage());
}
@Override
public void onAborted() {
}
@Override
public void onNotValidSelection() {
newProjectFolder = null;
GWTMessages.alert("Attention", "Select a valid project folder!", getZIndex());
}
};
wselectPanel.addWorkspaceExplorerSelectNotificationListener(handler);
SimplePanel mainPanel=new SimplePanel();
mainPanel.setHeight("400px");
mainPanel.setWidget(wselectPanel);
setContent(mainPanel);
} catch (Exception e) {
GWT.log("Error: " + e.getLocalizedMessage());
e.printStackTrace();
}
}
private void createNewProjectFolder(Item item) {
Log.debug("Create Project Item selected: " + item);
newProjectFolder = new ItemDescription(item.getId(), item.getName(), item.getOwner(), item.getPath(),
item.getType().name());
}
@Override
public void setup() {
Command sayNextCard = new Command() {
public void execute() {
checkData();
}
};
Command sayPreviousCard = new Command() {
public void execute() {
try {
GWT.log("PreviousCard");
getWizardWindow().setNextButtonToDefault();
getWizardWindow().previousCard();
} catch (Exception e) {
GWT.log("sayPreviousCard :" + e.getLocalizedMessage());
}
}
};
getWizardWindow().setPreviousButtonCommand(sayPreviousCard);
getWizardWindow().setNextButtonCommand(sayNextCard);
getWizardWindow().setNextButtonToFinish();
setEnableBackButton(true);
setBackButtonVisible(true);
setEnableNextButton(true);
setNextButtonVisible(true);
getWizardWindow().center();
}
private void checkData() {
if (newProjectFolder != null) {
ProjectCreateWizard wiz = (ProjectCreateWizard) getWizardWindow();
wiz.getProjectCreateSession().setNewProjectFolder(newProjectFolder);
goNext();
} else {
GWTMessages.alert("Attention", "Select a valid project folder!", getZIndex());
}
}
private void goNext() {
try {
GWT.log("NextCard");
WizardEvent event = new WizardEvent(WizardEventType.Completed);
getWizardWindow().fireEvent(event);
getWizardWindow().close(false);
} catch (Exception e) {
GWT.log("sayNextCard :" + e.getLocalizedMessage());
}
}
}