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 eu.dnetlib.gwt.client.help.AdminWidget;
11
import eu.dnetlib.gwt.client.help.HelpService;
12
import eu.dnetlib.gwt.client.help.HelpServiceAsync;
13
import eu.dnetlib.gwt.shared.Help;
14
import eu.dnetlib.repo.manager.client.AbstractRepositoryManagerWidget;
15
import eu.dnetlib.repo.manager.client.HelpCallback;
16
import eu.dnetlib.repo.manager.client.RepositoryManagerWidget;
17
import org.gwtbootstrap3.client.ui.Alert;
18
import org.gwtbootstrap3.client.ui.Button;
19
import org.gwtbootstrap3.client.ui.constants.AlertType;
20
import org.gwtbootstrap3.client.ui.constants.IconPosition;
21

    
22
import java.util.List;
23

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

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

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

    
51
    private FlowPanel helpTextsAdminBoxContent = new FlowPanel();
52

    
53
    private FlowPanel actionButtonsPanel = new FlowPanel();
54

    
55
    private Alert errorAlert = new Alert();
56

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

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

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

    
65
    public HelpTextsAdminWidget() {
66

    
67
        super();
68

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

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

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

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

    
97
        HTML tt = new HTML();
98

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

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

    
107
        actionButtonsPanel.addStyleName("helpAdminActionButtons");
108

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

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

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

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

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

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

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

    
152
    @Override
153
    public void clear() {
154

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

    
160
    @Override
161
    public void reload() {
162

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

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

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

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

    
188
        helpTextsAdminBoxContent.add(actionButtonsPanel);
189

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

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

    
195
            }
196

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

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

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