SideBySide2: Refactor comment management to new top level class
Yank all of the code related to comment management out of SideBySide2 and into its own new top level class. This moves about 500 lines of code from a 1800 line class to a new 400 line class, which may make it easier to follow SideBySide2. Change-Id: Ie24b3e3af38a9dea38a756fc5b635f1cc54f7f8a
This commit is contained in:
@@ -61,6 +61,10 @@ class Header extends Composite {
|
||||
Resources.I.style().ensureInjected();
|
||||
}
|
||||
|
||||
private static enum ReviewedState {
|
||||
AUTO_REVIEW, LOADED;
|
||||
}
|
||||
|
||||
@UiField CheckBox reviewed;
|
||||
@UiField Element project;
|
||||
@UiField Element filePath;
|
||||
@@ -80,6 +84,7 @@ class Header extends Composite {
|
||||
private boolean hasNext;
|
||||
private String nextPath;
|
||||
private PreferencesAction prefsAction;
|
||||
private ReviewedState reviewedState;
|
||||
|
||||
Header(KeyCommandSet keys, PatchSet.Id base, PatchSet.Id patchSetId,
|
||||
String path) {
|
||||
@@ -157,12 +162,12 @@ class Header extends Composite {
|
||||
.get(new AsyncCallback<JsArrayString>() {
|
||||
@Override
|
||||
public void onSuccess(JsArrayString result) {
|
||||
for (int i = 0; i < result.length(); i++) {
|
||||
if (path.equals(result.get(i))) {
|
||||
reviewed.setValue(true, false);
|
||||
break;
|
||||
}
|
||||
boolean b = Natives.asList(result).contains(path);
|
||||
reviewed.setValue(b, false);
|
||||
if (!b && reviewedState == ReviewedState.AUTO_REVIEW) {
|
||||
postAutoReviewed();
|
||||
}
|
||||
reviewedState = ReviewedState.LOADED;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -172,6 +177,14 @@ class Header extends Composite {
|
||||
}
|
||||
}
|
||||
|
||||
void autoReview() {
|
||||
if (reviewedState == ReviewedState.LOADED && !reviewed.getValue()) {
|
||||
postAutoReviewed();
|
||||
} else {
|
||||
reviewedState = ReviewedState.AUTO_REVIEW;
|
||||
}
|
||||
}
|
||||
|
||||
void setChangeInfo(ChangeInfo info) {
|
||||
GitwebLink gw = Gerrit.getGitwebLink();
|
||||
if (gw != null) {
|
||||
@@ -198,25 +211,33 @@ class Header extends Composite {
|
||||
prefsAction.setPartner(preferences);
|
||||
}
|
||||
|
||||
void setReviewed(boolean r) {
|
||||
reviewed.setValue(r, true);
|
||||
}
|
||||
|
||||
boolean isReviewed() {
|
||||
return reviewed.getValue();
|
||||
}
|
||||
|
||||
@UiHandler("reviewed")
|
||||
void onValueChange(ValueChangeEvent<Boolean> event) {
|
||||
RestApi api = ChangeApi.revision(patchSetId)
|
||||
if (event.getValue()) {
|
||||
reviewed().put(CallbackGroup.<ReviewInfo> emptyCallback());
|
||||
} else {
|
||||
reviewed().delete(CallbackGroup.<ReviewInfo> emptyCallback());
|
||||
}
|
||||
}
|
||||
|
||||
private void postAutoReviewed() {
|
||||
reviewed().background().put(new AsyncCallback<ReviewInfo>() {
|
||||
@Override
|
||||
public void onSuccess(ReviewInfo result) {
|
||||
reviewed.setValue(true, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private RestApi reviewed() {
|
||||
return ChangeApi.revision(patchSetId)
|
||||
.view("files")
|
||||
.id(path)
|
||||
.view("reviewed");
|
||||
if (event.getValue()) {
|
||||
api.put(CallbackGroup.<ReviewInfo>emptyCallback());
|
||||
} else {
|
||||
api.delete(CallbackGroup.<ReviewInfo>emptyCallback());
|
||||
}
|
||||
}
|
||||
|
||||
@UiHandler("preferences")
|
||||
@@ -255,6 +276,14 @@ class Header extends Composite {
|
||||
}
|
||||
}
|
||||
|
||||
Runnable toggleReviewed() {
|
||||
return new Runnable() {
|
||||
public void run() {
|
||||
reviewed.setValue(!reviewed.getValue(), true);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Runnable navigate(Direction dir) {
|
||||
switch (dir) {
|
||||
case PREV:
|
||||
|
||||
Reference in New Issue
Block a user