This repository has been archived by the owner on Nov 9, 2017. It is now read-only.
/
TranslationHistoryView.java
154 lines (132 loc) · 3.95 KB
/
TranslationHistoryView.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
package org.zanata.webtrans.client.ui;
import java.util.List;
import org.zanata.webtrans.client.keys.ShortcutContext;
import org.zanata.webtrans.client.presenter.KeyShortcutPresenter;
import org.zanata.webtrans.client.resources.WebTransMessages;
import org.zanata.webtrans.shared.model.ComparableByDate;
import org.zanata.webtrans.shared.model.ReviewComment;
import org.zanata.webtrans.shared.model.TransHistoryItem;
import com.google.common.collect.Lists;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.TabLayoutPanel;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@Singleton
public class TranslationHistoryView extends ShortcutContextAwareDialogBox implements TranslationHistoryDisplay
{
private static TranslationHistoryViewUiBinder uiBinder = GWT.create(TranslationHistoryViewUiBinder.class);
private final ContentStateRenderer stateRenderer;
@UiField
WebTransMessages messages;
@UiField
HTMLPanel historyPanel;
@UiField
HistoryEntryComparisonPanel comparisonPanel;
@UiField
Styles style;
@UiField(provided = true)
DialogBoxCloseButton closeButton;
@UiField
TabLayoutPanel tabLayoutPanel;
@UiField
UnorderedListWidget itemList;
@UiField
ReviewCommentInputWidget commentInput;
private Listener listener;
private List<ComparableByDate> items = Lists.newArrayList();
@Inject
public TranslationHistoryView(ContentStateRenderer stateRenderer, KeyShortcutPresenter keyShortcutPresenter)
{
super(true, true, ShortcutContext.TransHistoryPopup, keyShortcutPresenter);
this.stateRenderer = stateRenderer;
closeButton = new DialogBoxCloseButton(this);
HTMLPanel container = uiBinder.createAndBindUi(this);
ensureDebugId("transHistory");
tabLayoutPanel.ensureDebugId("transHistoryTabPanel");
setGlassEnabled(true);
setWidget(container);
}
@Override
public void setData(List<ComparableByDate> items)
{
this.items = items;
commentInput.setEnabled(!items.isEmpty());
redrawList();
}
private void redrawList()
{
itemList.clear();
for (ComparableByDate item : items)
{
if (item instanceof TransHistoryItem)
{
itemList.add(new TransHistoryItemLine((TransHistoryItem) item, listener, stateRenderer));
}
if (item instanceof ReviewComment)
{
itemList.add(new ReviewCommentItemLine((ReviewComment) item));
}
}
}
@Override
public void addCommentToList(ReviewComment comment)
{
items.add(0, comment);
redrawList();
}
@Override
public void clearInput()
{
commentInput.setText("");
}
@Override
public String getComment()
{
return commentInput.getText();
}
@Override
public void showDiff(TransHistoryItem one, TransHistoryItem two, String description)
{
comparisonPanel.compare(one, two);
setComparisonTitle(description);
}
@Override
public void disableComparison()
{
comparisonPanel.clear();
setComparisonTitle(messages.translationHistoryComparisonTitle());
}
@Override
public void setTitle(String title)
{
getCaption().setText(title);
}
@Override
public void setListener(Listener listener)
{
this.listener = listener;
commentInput.setListener(listener);
}
private void setComparisonTitle(String description)
{
tabLayoutPanel.setTabText(1, description);
}
@Override
public void resetView()
{
items = Lists.newArrayList();
redrawList();
disableComparison();
}
interface TranslationHistoryViewUiBinder extends UiBinder<HTMLPanel, TranslationHistoryView>
{
}
interface Styles extends CssResource
{
String pasteButton();
}
}