Project

General

Profile

1
package eu.dnetlib.repo.manager.client.admin.helptexts;
2

    
3
import com.google.gwt.core.client.GWT;
4
import com.google.gwt.dom.client.Document;
5
import com.google.gwt.event.dom.client.ClickEvent;
6
import com.google.gwt.event.dom.client.ClickHandler;
7
import com.google.gwt.user.client.rpc.AsyncCallback;
8
import com.google.gwt.user.client.ui.FlowPanel;
9
import com.google.gwt.user.client.ui.HTML;
10
import com.google.gwt.user.client.ui.Widget;
11
import eu.dnetlib.gwt.client.help.AdminWidget;
12
import eu.dnetlib.gwt.client.help.HelpService;
13
import eu.dnetlib.gwt.client.help.HelpServiceAsync;
14
import eu.dnetlib.gwt.shared.Help;
15
import eu.dnetlib.repo.manager.client.AbstractRepositoryManagerWidget;
16
import eu.dnetlib.repo.manager.client.HelpCallback;
17
import eu.dnetlib.repo.manager.client.RepositoryManagerWidget;
18
import org.gwtbootstrap3.client.ui.Alert;
19
import org.gwtbootstrap3.client.ui.Button;
20
import org.gwtbootstrap3.client.ui.constants.AlertType;
21
import org.gwtbootstrap3.client.ui.constants.IconPosition;
22

    
23
import java.util.List;
24

    
25
/**
26
 * Created by stefania on 3/9/16.
27
 */
28
public class HelpTextsAdminWidget extends AbstractRepositoryManagerWidget implements RepositoryManagerWidget {
29

    
30
//    private static HelpTextsAdminWidget instance = null;
31
//
32
//    private String parentToken = "";
33
//    private String restToken = "";
34
//
35
//    private FlowPanel helpAdminPanel = new FlowPanel();
36
//
37
//    private FlowPanel myRepositoriesListPanel = new FlowPanel();
38
//    private FlowPanel myRepositoriesListInnerPanel = new FlowPanel();
39
//    private FlowPanel myRepositoriesListBox = new FlowPanel();
40
//    private FlowPanel myRepositoriesListBoxContent = new FlowPanel();
41
//
42
//    private FlowPanel actionButtonsPanel = new FlowPanel();
43
//
44
//    private FlowPanel sidePanel = new FlowPanel();
45
//    private FlowPanel previewPanel = new FlowPanel();
46
//    private FlowPanel previewPanelContent = new FlowPanel();
47
//    private FlowPanel helpPanel = new FlowPanel();
48

    
49
    private String parentToken = "";
50
    private String restToken = "";
51

    
52
    private FlowPanel helpTextsAdminBoxContent = new FlowPanel();
53

    
54
    private FlowPanel actionButtonsPanel = new FlowPanel();
55

    
56
    private Alert errorAlert = new Alert();
57

    
58
//    private FlowPanel helpPanel = new FlowPanel();
59
    private FlowPanel helpText = new FlowPanel();
60
    private FlowPanel preview = new FlowPanel();
61

    
62
    private AdminWidget helpTextsAdminWidget = new AdminWidget(preview, false);
63

    
64
    private static HelpServiceAsync helpService = GWT.create(HelpService.class);
65

    
66
    public HelpTextsAdminWidget() {
67

    
68
        super();
69

    
70
        HTML title = new HTML("<h1 class=\"uk-article-title\">Help Texts Admin</h1>");
71
        title.addStyleName("uk-margin-medium-bottom");
72
        contentPanel.add(title);
73

    
74
        errorAlert.setType(AlertType.DANGER);
75
        errorAlert.setDismissable(false);
76
        errorAlert.setVisible(false);
77
        helpTextsAdminBoxContent.add(errorAlert);
78

    
79
        contentPanel.add(helpTextsAdminBoxContent);
80
        gridPanel.add(helpPanel);
81

    
82
//        helpAdminPanel.addStyleName("row");
83
//
84
//        myRepositoriesListPanel.addStyleName("col-lg-9");
85
//        myRepositoriesListPanel.add(myRepositoriesListInnerPanel);
86
//
87
//        myRepositoriesListInnerPanel.addStyleName("wrapper wrapper-content animated fadeInUp");
88
//        myRepositoriesListInnerPanel.add(myRepositoriesListBox);
89
//
90
//        myRepositoriesListBox.addStyleName("ibox");
91
//        myRepositoriesListBox.add(myRepositoriesListBoxContent);
92
//
93
//        myRepositoriesListBoxContent.addStyleName("ibox-content");
94
//
95
//        sidePanel.addStyleName("col-lg-3");
96
//        sidePanel.add(previewPanel);
97

    
98
        HTML tt = new HTML();
99

    
100
        tt.setHTML("<div class=\"previewTitle\">PREVIEW</div>");
101
        preview.addStyleName("previewPanel");
102
//        preview.add(new HTML("<div class=\"previewTitle\">PREVIEW</div>"));
103

    
104
        preview.clear();
105
        preview.add(tt);
106
        helpPanel.add(preview);
107

    
108
        actionButtonsPanel.addStyleName("helpAdminActionButtons");
109

    
110
        Button preview = new Button();
111
        Button submit = new Button();
112

    
113
        preview.setText("Preview");
114
//        preview.addStyleName("btn-grey-light");
115
//        preview.removeStyleName("btn-default");
116
        preview.setIconPosition(IconPosition.RIGHT);
117
        preview.addClickHandler(new ClickHandler() {
118
            @Override
119
            public void onClick(ClickEvent event) {
120
                helpTextsAdminWidget.previewHelpText();
121
            }
122
        });
123

    
124
        submit.setText("Submit Changes");
125
        preview.addStyleName("uk-button-primary");
126
//        submit.addStyleName("btn-grey-light");
127
//        submit.removeStyleName("btn-default");
128
        submit.setIconPosition(IconPosition.RIGHT);
129
        submit.addClickHandler(new ClickHandler() {
130
            @Override
131
            public void onClick(ClickEvent event) {
132
                helpTextsAdminWidget.saveHelpText();
133
            }
134
        });
135

    
136
        actionButtonsPanel.add(preview);
137
        actionButtonsPanel.add(submit);
138

    
139
//        helpAdminPanel.add(myRepositoriesListPanel);
140
//        helpAdminPanel.add(sidePanel);
141

    
142
        AdminWidget.HelpTextUpdatedListener helpTextUpdatedListener = new AdminWidget.HelpTextUpdatedListener() {
143

    
144
            @Override
145
            public void helpTextUpdated(Help updatedHelp) {
146
                if(updatedHelp!=null && updatedHelp.getId().equals(parentToken))
147
                    helpService.getHelpById(parentToken, new HelpCallback(helpText, helpPanel));
148
            }
149
        };
150
        helpTextsAdminWidget.setHelpTextUpdatedListener(helpTextUpdatedListener);
151
    }
152

    
153
    @Override
154
    public void clear() {
155

    
156
        helpTextsAdminBoxContent.clear();
157
        errorAlert.setVisible(false);
158
        helpPanel.remove(helpText);
159
    }
160

    
161
    @Override
162
    public void reload() {
163

    
164
        Document.get().getElementById("headerNoTransparent").removeClassName("tm-header-transparent");
165
        helpTextsAdminBoxContent.add(errorAlert);
166

    
167
        helpService.getHelpById(parentToken, new HelpCallback(helpText, helpPanel));
168

    
169
        helpTextsAdminWidget.setToken("");
170
        helpTextsAdminWidget.setEditorUIColor("#d4dee7");
171
        helpTextsAdminWidget.clear();
172
        helpTextsAdminWidget.reload();
173

    
174
//        FlowPanel rowPanel = new FlowPanel();
175
//        rowPanel.addStyleName("row");
176
//        myRepositoriesListBoxContent.add(rowPanel);
177
//
178
//        FlowPanel colPanel = new FlowPanel();
179
//        colPanel.addStyleName("col-lg-12");
180
//        rowPanel.add(colPanel);
181
//
182
//        HTML title = new HTML("<h1>Monitor Help Texts</h1>");
183
//        title.addStyleName("m-b-md");
184
//        colPanel.add(title);
185
//
186
//        helpTextsAdminWidget.addStyleName("col-lg-12");
187
        helpTextsAdminBoxContent.add(helpTextsAdminWidget.asWidget());
188

    
189
        helpTextsAdminBoxContent.add(actionButtonsPanel);
190

    
191
        helpService.getAll(new AsyncCallback<List<Help>>() {
192

    
193
            @Override
194
            public void onFailure(Throwable caught) {
195

    
196
            }
197

    
198
            @Override
199
            public void onSuccess(List<Help> helpTexts) {
200
                helpTextsAdminWidget.setHelpTexts(helpTexts);
201
            }
202
        });
203
    }
204

    
205
    @Override
206
    public void setToken(String parentToken, String rest) {
207
        this.parentToken = parentToken;
208
        this.restToken = rest;
209
    }
210

    
211
    @Override
212
    public void afterAdditionToRootPanel() {
213
        helpTextsAdminWidget.afterAdditionToRootPanel();
214
    }
215
}
(2-2/2)