summaryrefslogtreecommitdiffstats
path: root/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Screen.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Screen.java')
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Screen.java43
1 files changed, 38 insertions, 5 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Screen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Screen.java
index a854abcc4a..5cb47271b5 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Screen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Screen.java
@@ -18,12 +18,24 @@ import com.google.gerrit.client.Gerrit;
import com.google.gerrit.common.PageLinks;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.Grid;
+import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwtexpui.user.client.View;
+/**
+ * A Screen layout with a header and a body.
+ *
+ * The header is mainly a text title, but it can be decorated
+ * in the West, the East, and the FarEast by any Widget. The
+ * West and East decorations will surround the text on the
+ * left and right respectively, and the FarEast will be right
+ * justified to the right edge of the screen. The East
+ * decoration will expand to take up any extra space.
+ */
public abstract class Screen extends View {
- private FlowPanel header;
+ private Grid header;
private InlineLabel headerText;
private FlowPanel body;
private String token;
@@ -46,13 +58,25 @@ public abstract class Screen extends View {
public void registerKeys() {
}
+ private static enum Cols {
+ West, Title, East, FarEast;
+ }
+
protected void onInitUI() {
final FlowPanel me = (FlowPanel) getWidget();
- me.add(header = new FlowPanel());
+ me.add(header = new Grid(1, Cols.values().length));
me.add(body = new FlowPanel());
+ FlowPanel title = new FlowPanel();
+ title.add(headerText = new InlineLabel());
+ title.setStyleName(Gerrit.RESOURCES.css().screenHeader());
+ header.setWidget(0, Cols.Title.ordinal(), title);
+
header.setStyleName(Gerrit.RESOURCES.css().screenHeader());
- header.add(headerText = new InlineLabel());
+ header.getCellFormatter().setHorizontalAlignment(0, Cols.FarEast.ordinal(),
+ HasHorizontalAlignment.ALIGN_RIGHT);
+ // force FarEast all the way to the right
+ header.getCellFormatter().setWidth(0, Cols.FarEast.ordinal(), "100%");
}
protected void setWindowTitle(final String text) {
@@ -73,8 +97,16 @@ public abstract class Screen extends View {
}
}
- protected void insertTitleWidget(final Widget w) {
- header.insert(w, 0);
+ protected void setTitleEast(final Widget w) {
+ header.setWidget(0, Cols.East.ordinal(), w);
+ }
+
+ protected void setTitleFarEast(final Widget w) {
+ header.setWidget(0, Cols.FarEast.ordinal(), w);
+ }
+
+ protected void setTitleWest(final Widget w) {
+ header.setWidget(0, Cols.West.ordinal(), w);
}
protected void add(final Widget w) {
@@ -127,6 +159,7 @@ public abstract class Screen extends View {
if (windowTitle != null) {
Gerrit.setWindowTitle(this, windowTitle);
}
+ Gerrit.updateMenus(this);
registerKeys();
}
}