summaryrefslogtreecommitdiffstats
path: root/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client')
-rw-r--r--gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/ProgressBar.java77
-rw-r--r--gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/ProgressCss.java23
-rw-r--r--gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/ProgressResources.java25
-rw-r--r--gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/progress.css43
4 files changed, 168 insertions, 0 deletions
diff --git a/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/ProgressBar.java b/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/ProgressBar.java
new file mode 100644
index 0000000000..5e13f55b76
--- /dev/null
+++ b/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/ProgressBar.java
@@ -0,0 +1,77 @@
+// Copyright (C) 2009 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gwtexpui.progress.client;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.Label;
+
+/**
+ * A simple progress bar with a text label.
+ * <p>
+ * The bar is 200 pixels wide and 20 pixels high. To keep the implementation
+ * simple and lightweight this dimensions are fixed and shouldn't be modified by
+ * style overrides in client code or CSS.
+ */
+public class ProgressBar extends Composite {
+ static {
+ ProgressResources.I.css().ensureInjected();
+ }
+
+ private final String callerText;
+ private final Label bar;
+ private final Label msg;
+ private int value;
+
+ /** Create a bar with no message text. */
+ public ProgressBar() {
+ this("");
+ }
+
+ /** Create a bar displaying the specified message. */
+ public ProgressBar(final String text) {
+ if (text == null || text.length() == 0) {
+ callerText = "";
+ } else {
+ callerText = text + " ";
+ }
+
+ final FlowPanel body = new FlowPanel();
+ body.setStyleName(ProgressResources.I.css().container());
+
+ msg = new Label(callerText);
+ msg.setStyleName(ProgressResources.I.css().text());
+ body.add(msg);
+
+ bar = new Label("");
+ bar.setStyleName(ProgressResources.I.css().bar());
+ body.add(bar);
+
+ initWidget(body);
+ }
+
+ /** @return the current value of the progress meter. */
+ public int getValue() {
+ return value;
+ }
+
+ /** Update the bar's percent completion. */
+ public void setValue(final int pComplete) {
+ assert 0 <= pComplete && pComplete <= 100;
+ value = pComplete;
+ bar.setWidth("" + (2 * pComplete) + "px");
+ msg.setText(callerText + pComplete + "%");
+ }
+}
diff --git a/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/ProgressCss.java b/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/ProgressCss.java
new file mode 100644
index 0000000000..9de2748f90
--- /dev/null
+++ b/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/ProgressCss.java
@@ -0,0 +1,23 @@
+// Copyright (C) 2009 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gwtexpui.progress.client;
+
+import com.google.gwt.resources.client.CssResource;
+
+public interface ProgressCss extends CssResource {
+ String container();
+ String text();
+ String bar();
+}
diff --git a/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/ProgressResources.java b/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/ProgressResources.java
new file mode 100644
index 0000000000..0276e9a608
--- /dev/null
+++ b/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/ProgressResources.java
@@ -0,0 +1,25 @@
+// Copyright (C) 2009 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gwtexpui.progress.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.resources.client.ClientBundle;
+
+public interface ProgressResources extends ClientBundle {
+ public static final ProgressResources I = GWT.create(ProgressResources.class);
+
+ @Source("progress.css")
+ ProgressCss css();
+}
diff --git a/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/progress.css b/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/progress.css
new file mode 100644
index 0000000000..683396e6a1
--- /dev/null
+++ b/gerrit-gwtexpui/src/main/java/com/google/gwtexpui/progress/client/progress.css
@@ -0,0 +1,43 @@
+/* Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+.container {
+ position: relative;
+ border: 1px solid #6B90DA;
+ height: 20px;
+ width: 200px;
+}
+
+.text {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ z-index: 2;
+ width: 200px;
+ padding-bottom: 3px;
+ text-align: center;
+ font-weight: bold;
+ font-style: italic;
+ font-size: smaller;
+}
+
+.bar {
+ background: #F0F7F9;
+ border-right: 1px solid #D0D7D9;
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 20px;
+}