Project

General

Profile

1
package eu.dnetlib.repo.manager.client.datasources.register.wizard;
2

    
3
import com.google.gwt.core.client.GWT;
4
import com.google.gwt.user.client.rpc.AsyncCallback;
5
import com.google.gwt.user.client.ui.HTML;
6
import eu.dnetlib.repo.manager.client.services.RepositoryService;
7
import eu.dnetlib.repo.manager.client.services.RepositoryServiceAsync;
8
import eu.dnetlib.repo.manager.client.widgets.wizard.WizardStepWidget;
9
import eu.dnetlib.repo.manager.client.widgets.wizard.WizardWidget;
10
import eu.dnetlib.repo.manager.shared.DatasourceRegistrationState;
11

    
12
import java.util.List;
13

    
14
/**
15
 * Created by stefania on 2/10/16.
16
 */
17
public class DatasourceRegistrationWizard extends WizardWidget {
18

    
19
    private RepositoryServiceAsync repositoryService = GWT.create(RepositoryService.class);
20

    
21
    public DatasourceRegistrationWizard(final List<WizardStepWidget> wizardStepWidgets) {
22

    
23
        super(wizardStepWidgets, new DatasourceRegistrationState(), "Register your datasource");
24

    
25
        for(WizardStepWidget wizardStepWidget : wizardStepWidgets) {
26

    
27
            WizardStepWidget.WizardStepCompletedListener wizardStepCompletedListener =
28
                    new WizardStepWidget.WizardStepCompletedListener() {
29

    
30
                        @Override
31
                        public void setStepCompleted() {
32

    
33
                            final DatasourceRegistrationState state = (DatasourceRegistrationState) wizardState;
34

    
35
                            wizardStepWidgets.get(currentActiveStep).updateState(state);
36

    
37
                            if(newActiveStep == wizardStepWidgets.size()-1) {
38

    
39
                                final HTML loadingWheel = new HTML("<div class=\"loader-big\" style=\"text-align: center; padding-top: 170px; " +
40
                                        "color: rgb(47, 64, 80); font-weight: bold;\">Registering repository...</div>" +
41
                                        "<div class=\"whiteFilm\"></div>");
42
                                innerWizardContentPanel.addStyleName("loading-big");
43
                                innerWizardContentPanel.add(loadingWheel);
44

    
45
                                repositoryService.storeRepository(state.getRepository(),
46
                                        state.getMode(), new AsyncCallback<Void>() {
47

    
48
                                            @Override
49
                                            public void onFailure(Throwable caught) {
50

    
51
                                                innerWizardContentPanel.removeStyleName("loading-big");
52
                                                innerWizardContentPanel.remove(loadingWheel);
53

    
54
                                                errorLabel.setText("System error registering this repository");
55
                                                errorLabel.setVisible(true);
56
                                            }
57

    
58
                                            @Override
59
                                            public void onSuccess(Void result) {
60

    
61
                                                innerWizardContentPanel.removeStyleName("loading-big");
62
                                                innerWizardContentPanel.remove(loadingWheel);
63

    
64
                                                setActiveStep(newActiveStep);
65
                                            }
66
                                        });
67

    
68
                            } else {
69
                                if (newActiveStep < wizardStepWidgets.size())
70
                                    setActiveStep(newActiveStep);
71
                            }
72
                        }
73
                    };
74
            wizardStepWidget.setWizardStepCompletedListener(wizardStepCompletedListener);
75
        }
76
    }
77
}
(4-4/5)