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.FlowPanel;
6
import com.google.gwt.user.client.ui.Widget;
7
import eu.dnetlib.repo.manager.client.datasources.utils.SelectRepositoryWidget;
8
import eu.dnetlib.repo.manager.client.services.RepositoryService;
9
import eu.dnetlib.repo.manager.client.services.RepositoryServiceAsync;
10
import eu.dnetlib.repo.manager.client.widgets.wizard.WizardStepWidget;
11
import eu.dnetlib.repo.manager.shared.DatasourceRegistrationState;
12
import eu.dnetlib.repo.manager.shared.WizardState;
13
import org.gwtbootstrap3.client.ui.Alert;
14
import org.gwtbootstrap3.client.ui.constants.AlertType;
15

    
16
import java.util.Map;
17

    
18
/**
19
 * Created by stefania on 12/17/15.
20
 */
21
public class SelectRepositoryStepWidget extends WizardStepWidget {
22

    
23
    private FlowPanel selectRepositoryStepPanel = new FlowPanel();
24

    
25
    private Alert errorAlert = new Alert();
26

    
27
    private SelectRepositoryWidget selectRepositoryWidget;
28

    
29
    private RepositoryServiceAsync repositoryService = GWT.create(RepositoryService.class);
30

    
31
    public SelectRepositoryStepWidget(String id, String title, String mode) {
32

    
33
        super(id, title, mode);
34

    
35
        errorAlert.addStyleName("stepContent");
36
        errorAlert.setType(AlertType.DANGER);
37
        errorAlert.setDismissable(false);
38
        errorAlert.setVisible(false);
39

    
40
        selectRepositoryStepPanel.add(errorAlert);
41

    
42
        repositoryService.getCountries(new AsyncCallback<Map<String, String>>() {
43

    
44
            @Override
45
            public void onFailure(Throwable caught) {
46

    
47
                errorAlert.setText("System error retrieving countries");
48
                errorAlert.setVisible(true);
49
            }
50

    
51
            @Override
52
            public void onSuccess(Map<String, String> countries) {
53

    
54
                selectRepositoryWidget = new SelectRepositoryWidget(countries, getMode());
55
                selectRepositoryStepPanel.add(selectRepositoryWidget.asWidget());
56
            }
57
        });
58
    }
59

    
60
    @Override
61
    public void clear() {
62

    
63
    }
64

    
65
    @Override
66
    public void updateState(WizardState wizardState) {
67

    
68
        DatasourceRegistrationState datasourceRegistrationState = (DatasourceRegistrationState) wizardState;
69

    
70
        datasourceRegistrationState.setSelectedRepositoryId(selectRepositoryWidget.getSelectedRepository().getId());
71
        datasourceRegistrationState.setRepository(selectRepositoryWidget.getSelectedRepository());
72

    
73
        datasourceRegistrationState.setMode(this.getMode());
74
    }
75

    
76
    @Override
77
    public void loadContent(WizardState wizardState) {
78

    
79
    }
80

    
81
    @Override
82
    public void completeStep() {
83

    
84
        if(selectRepositoryWidget!=null && selectRepositoryWidget.getSelectedRepository()!=null) {
85

    
86
            if(getWizardStepCompletedListener()!=null)
87
                getWizardStepCompletedListener().setStepCompleted();
88

    
89
        }
90
    }
91

    
92
    @Override
93
    public Widget asWidget() {
94
        return selectRepositoryStepPanel;
95
    }
96
}
(5-5/5)