Updated KitchenSink demo.
Patch by: jgw
Review by: bruce
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1113 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Buttons.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Buttons.java
deleted file mode 100644
index c95debf..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Buttons.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright 2006 Google Inc.
- *
- * 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.gwt.sample.kitchensink.client;
-
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.CheckBox;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.PushButton;
-import com.google.gwt.user.client.ui.RadioButton;
-import com.google.gwt.user.client.ui.ToggleButton;
-import com.google.gwt.user.client.ui.VerticalPanel;
-
-/**
- * Demonstrates the various button widgets.
- */
-public class Buttons extends Sink {
-
- public static SinkInfo init() {
- return new SinkInfo("Buttons",
- "GWT supports all the myriad types of buttons that exist in HTML. "
- + "Here are a few for your viewing pleasure.") {
- public Sink createInstance() {
- return new Buttons();
- }
- };
- }
-
- private Button disabledButton = new Button("Disabled Button");
- private CheckBox disabledCheck = new CheckBox("Disabled Check");
- private Button normalButton = new Button("Normal Button");
- private CheckBox normalCheck = new CheckBox("Normal Check");
- private VerticalPanel panel = new VerticalPanel();
- private RadioButton radio0 = new RadioButton("group0", "Choice 0");
- private RadioButton radio1 = new RadioButton("group0", "Choice 1");
- private RadioButton radio2 = new RadioButton("group0", "Choice 2 (Disabled)");
- private RadioButton radio3 = new RadioButton("group0", "Choice 3");
- private PushButton pushButton = new PushButton("PushButton");
- private ToggleButton toggleButton = new ToggleButton("ToggleButton");
-
- public Buttons() {
- HorizontalPanel hp;
-
- panel.add(hp = new HorizontalPanel());
- hp.setSpacing(8);
- hp.add(normalButton);
- hp.add(disabledButton);
-
- panel.add(hp = new HorizontalPanel());
- hp.setSpacing(8);
- hp.add(normalCheck);
- hp.add(disabledCheck);
-
- panel.add(hp = new HorizontalPanel());
- hp.setSpacing(8);
- hp.add(radio0);
- hp.add(radio1);
- hp.add(radio2);
- hp.add(radio3);
-
- panel.add(hp = new HorizontalPanel());
- hp.setSpacing(8);
- hp.add(pushButton);
- hp.add(toggleButton);
-
- disabledButton.setEnabled(false);
- disabledCheck.setEnabled(false);
- radio2.setEnabled(false);
-
- panel.setSpacing(8);
- initWidget(panel);
- }
-
- public void onShow() {
- }
-}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Frames.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Frames.java
deleted file mode 100644
index ab97ffe..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Frames.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2006 Google Inc.
- *
- * 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.gwt.sample.kitchensink.client;
-
-import com.google.gwt.user.client.ui.Frame;
-
-/**
- * Demonstrates the {@link com.google.gwt.user.client.ui.Frame} widget.
- */
-public class Frames extends Sink {
-
- public static SinkInfo init() {
- return new SinkInfo("Frames",
- "If you need to include multiple pages of good ol' static HTML, it's "
- + "easy to do using the <code>Frame</code> class.") {
- public Sink createInstance() {
- return new Frames();
- }
- };
- }
-
- private Frame frame = new Frame("rembrandt/LaMarcheNocturne.html");
-
- public Frames() {
- frame.setWidth("100%");
- frame.setHeight("48em");
- initWidget(frame);
- }
-
- public void onShow() {
- }
-}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Images.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Images.java
deleted file mode 100644
index b31a813..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Images.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright 2006 Google Inc.
- *
- * 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.gwt.sample.kitchensink.client;
-
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.DockPanel;
-import com.google.gwt.user.client.ui.Widget;
-import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.LoadListener;
-import com.google.gwt.user.client.ui.VerticalPanel;
-
-/**
- * Demonstrates {@link com.google.gwt.user.client.ui.Image}.
- */
-public class Images extends Sink implements ClickListener, LoadListener {
-
- private static final String[] sImages = new String[]{
- "rembrandt/JohannesElison.jpg", "rembrandt/LaMarcheNocturne.jpg",
- "rembrandt/SelfPortrait1628.jpg", "rembrandt/SelfPortrait1640.jpg",
- "rembrandt/TheArtistInHisStudio.jpg",
- "rembrandt/TheReturnOfTheProdigalSon.jpg"};
-
- public static SinkInfo init() {
- return new SinkInfo("Images",
- "This page demonstrates GWT's support for images. Notice in "
- + "particular how it uses the image's onLoad event to display a 'wait "
- + "spinner' between the back and forward buttons.") {
- public Sink createInstance() {
- return new Images();
- }
- };
- }
-
- private int curImage;
- private Image image = new Image();
- private Image loadingImage = new Image("images/blanksearching.gif");
- private Image nextButton = new Image("rembrandt/forward.gif");
- private Image prevButton = new Image("rembrandt/back.gif");
-
- public Images() {
- image.addLoadListener(this);
- prevButton.addClickListener(this);
- nextButton.addClickListener(this);
-
- DockPanel topPanel = new DockPanel();
- topPanel.setVerticalAlignment(DockPanel.ALIGN_MIDDLE);
- topPanel.add(prevButton, DockPanel.WEST);
- topPanel.add(nextButton, DockPanel.EAST);
- topPanel.add(loadingImage, DockPanel.CENTER);
-
- VerticalPanel panel = new VerticalPanel();
- panel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
- panel
- .add(new HTML("<h2>A Bit of Rembrandt</h2>", true));
- panel.add(topPanel);
- panel.add(image);
-
- panel.setWidth("100%");
- initWidget(panel);
- image.setStyleName("ks-images-Image");
- nextButton.setStyleName("ks-images-Button");
- prevButton.setStyleName("ks-images-Button");
-
- loadImage(0);
- }
-
- public void onClick(Widget sender) {
- if (sender == prevButton) {
- loadImage(curImage - 1);
- } else if (sender == nextButton) {
- loadImage(curImage + 1);
- }
- }
-
- public void onError(Widget sender) {
- }
-
- public void onLoad(Widget sender) {
- loadingImage.setUrl("images/blanksearching.gif");
- }
-
- public void onShow() {
- }
-
- private void loadImage(int index) {
- if (index < 0) {
- index = sImages.length - 1;
- } else if (index > sImages.length - 1) {
- index = 0;
- }
-
- curImage = index;
- loadingImage.setUrl("images/searching.gif");
- image.setUrl(sImages[curImage]);
- }
-}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Info.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Info.java
index 281fc96..92ef390 100644
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Info.java
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Info.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Google Inc.
+ * Copyright 2007 Google Inc.
*
* 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
@@ -15,7 +15,7 @@
*/
package com.google.gwt.sample.kitchensink.client;
-import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.Label;
/**
* Introduction page.
@@ -23,16 +23,8 @@
public class Info extends Sink {
public static SinkInfo init() {
- return new SinkInfo("Info", "Introduction to the Kitchen Sink.") {
- public Sink createInstance() {
- return new Info();
- }
- };
- }
-
- public Info() {
- initWidget(new HTML(
- "<div class='infoProse'>This is the Kitchen Sink sample. "
+ return new SinkInfo("Intro", "<h2>Introduction to the Kitchen Sink</h2>" +
+ "<p>This is the Kitchen Sink sample. "
+ "It demonstrates many of the widgets in the Google Web Toolkit."
+ "<p>This sample also demonstrates something else really useful in GWT: "
+ "history support. "
@@ -40,8 +32,16 @@
+ "updated with the current <i>history token</i>, which keeps the app "
+ "in a bookmarkable state. The back and forward buttons work properly "
+ "as well. Finally, notice that you can right-click a link and 'open "
- + "in new window' (or middle-click for a new tab in Firefox).</p></div>",
- true));
+ + "in new window' (or middle-click for a new tab in Firefox).</p></p>") {
+
+ public Sink createInstance() {
+ return new Info();
+ }
+ };
+ }
+
+ public Info() {
+ initWidget(new Label());
}
public void onShow() {
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/KitchenSink.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/KitchenSink.java
index 12e6ff1..2367bee 100644
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/KitchenSink.java
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/KitchenSink.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Google Inc.
+ * Copyright 2007 Google Inc.
*
* 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
@@ -17,10 +17,9 @@
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.sample.kitchensink.client.Sink.SinkInfo;
+import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.HistoryListener;
-import com.google.gwt.user.client.ui.DockPanel;
-import com.google.gwt.user.client.ui.HasAlignment;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
@@ -34,8 +33,7 @@
private SinkInfo curInfo;
private Sink curSink;
private HTML description = new HTML();
- private DockPanel panel = new DockPanel();
- private DockPanel sinkContainer;
+ private VerticalPanel panel = new VerticalPanel();
public void onHistoryChanged(String token) {
// Find the SinkInfo associated with the history context. If one is
@@ -53,24 +51,12 @@
// Load all the sinks.
loadSinks();
- // Put the sink list on the left, and add the outer dock panel to the
- // root.
- sinkContainer = new DockPanel();
- sinkContainer.setStyleName("ks-Sink");
-
- VerticalPanel vp = new VerticalPanel();
- vp.setWidth("100%");
- vp.add(description);
- vp.add(sinkContainer);
+ panel.add(list);
+ panel.add(description);
+ panel.setWidth("100%");
description.setStyleName("ks-Info");
- panel.add(list, DockPanel.WEST);
- panel.add(vp, DockPanel.CENTER);
-
- panel.setCellVerticalAlignment(list, HasAlignment.ALIGN_TOP);
- panel.setCellWidth(vp, "100%");
-
History.addHistoryListener(this);
RootPanel.get().add(panel);
@@ -96,7 +82,7 @@
// Remove the old sink from the display area.
if (curSink != null) {
curSink.onHide();
- sinkContainer.remove(curSink);
+ panel.remove(curSink);
}
// Get the new sink instance, and display its description in the
@@ -113,11 +99,13 @@
History.newItem(info.getName());
}
+ // Change the description background color.
+ DOM.setStyleAttribute(description.getElement(), "backgroundColor",
+ info.getColor());
+
// Display the new sink.
- sinkContainer.add(curSink, DockPanel.CENTER);
- sinkContainer.setCellWidth(curSink, "100%");
- sinkContainer.setCellHeight(curSink, "100%");
- sinkContainer.setCellVerticalAlignment(curSink, DockPanel.ALIGN_TOP);
+ panel.add(curSink);
+ panel.setCellHorizontalAlignment(curSink, VerticalPanel.ALIGN_CENTER);
curSink.onShow();
}
@@ -128,21 +116,14 @@
*/
protected void loadSinks() {
list.addSink(Info.init());
- list.addSink(Buttons.init());
- list.addSink(Menus.init());
- list.addSink(Images.init());
- list.addSink(Layouts.init());
+ list.addSink(Widgets.init());
+ list.addSink(Panels.init());
list.addSink(Lists.init());
- list.addSink(Popups.init());
- list.addSink(Tables.init());
list.addSink(Text.init());
- list.addSink(Trees.init());
- list.addSink(Frames.init());
- list.addSink(Tabs.init());
- list.addSink(Splitters.init());
+ list.addSink(Popups.init());
}
private void showInfo() {
- show(list.find("Info"), false);
+ show(list.find("Intro"), false);
}
}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Lists.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Lists.java
index 9a0e414..ca77a06 100644
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Lists.java
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Lists.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Google Inc.
+ * Copyright 2007 Google Inc.
*
* 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
@@ -21,13 +21,37 @@
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.MultiWordSuggestOracle;
import com.google.gwt.user.client.ui.SuggestBox;
+import com.google.gwt.user.client.ui.Tree;
+import com.google.gwt.user.client.ui.TreeItem;
+import com.google.gwt.user.client.ui.TreeListener;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
/**
* Demonstrates {@link com.google.gwt.user.client.ui.ListBox}.
*/
-public class Lists extends Sink implements ChangeListener {
+public class Lists extends Sink implements ChangeListener, TreeListener {
+
+ private static class PendingItem extends TreeItem {
+ public PendingItem() {
+ super("Please wait...");
+ }
+ }
+
+ private static class Proto {
+ public Proto[] children;
+ public TreeItem item;
+ public String text;
+
+ public Proto(String text) {
+ this.text = text;
+ }
+
+ public Proto(String text, Proto[] children) {
+ this(text);
+ this.children = children;
+ }
+ }
private static final String[][] stringLists = new String[][] {
new String[] {"foo0", "bar0", "baz0", "toto0", "tintin0"},
@@ -52,21 +76,66 @@
"xml", "xargs", "xeno", "yacc", "yank (the vi command)", "zealot", "zoe",
"zebra"};
+ private static Proto[] fProto = new Proto[]{
+ new Proto("Beethoven", new Proto[]{
+ new Proto("Concertos", new Proto[]{
+ new Proto("No. 1 - C"), new Proto("No. 2 - B-Flat Major"),
+ new Proto("No. 3 - C Minor"), new Proto("No. 4 - G Major"),
+ new Proto("No. 5 - E-Flat Major"),}),
+ new Proto("Quartets", new Proto[]{
+ new Proto("Six String Quartets"), new Proto("Three String Quartets"),
+ new Proto("Grosse Fugue for String Quartets"),}),
+ new Proto("Sonatas", new Proto[]{
+ new Proto("Sonata in A Minor"), new Proto("Sonata in F Major"),}),
+ new Proto("Symphonies", new Proto[]{
+ new Proto("No. 1 - C Major"), new Proto("No. 2 - D Major"),
+ new Proto("No. 3 - E-Flat Major"), new Proto("No. 4 - B-Flat Major"),
+ new Proto("No. 5 - C Minor"), new Proto("No. 6 - F Major"),
+ new Proto("No. 7 - A Major"), new Proto("No. 8 - F Major"),
+ new Proto("No. 9 - D Minor"),}),}),
+ new Proto("Brahms", new Proto[]{
+ new Proto("Concertos", new Proto[]{
+ new Proto("Violin Concerto"), new Proto("Double Concerto - A Minor"),
+ new Proto("Piano Concerto No. 1 - D Minor"),
+ new Proto("Piano Concerto No. 2 - B-Flat Major"),}),
+ new Proto("Quartets", new Proto[]{
+ new Proto("Piano Quartet No. 1 - G Minor"),
+ new Proto("Piano Quartet No. 2 - A Major"),
+ new Proto("Piano Quartet No. 3 - C Minor"),
+ new Proto("String Quartet No. 3 - B-Flat Minor"),}),
+ new Proto("Sonatas", new Proto[]{
+ new Proto("Two Sonatas for Clarinet - F Minor"),
+ new Proto("Two Sonatas for Clarinet - E-Flat Major"),}),
+ new Proto("Symphonies", new Proto[]{
+ new Proto("No. 1 - C Minor"), new Proto("No. 2 - D Minor"),
+ new Proto("No. 3 - F Major"), new Proto("No. 4 - E Minor"),}),}),
+ new Proto("Mozart", new Proto[]{new Proto("Concertos", new Proto[]{
+ new Proto("Piano Concerto No. 12"), new Proto("Piano Concerto No. 17"),
+ new Proto("Clarinet Concerto"), new Proto("Violin Concerto No. 5"),
+ new Proto("Violin Concerto No. 4"),}),}),};
+
public static SinkInfo init() {
return new SinkInfo("Lists",
- "Here is the ListBox widget in its two major forms.") {
+ "<h2>Lists and Trees</h2>" +
+ "<p>GWT provides a number of ways to display lists and trees. This " +
+ "includes the browser's built-in list and drop-down boxes, as well as " +
+ "the more advanced suggestion combo-box and trees.</p><p>Try typing " +
+ "some text in the SuggestBox below to see what happens!</p>") {
+
public Sink createInstance() {
return new Lists();
}
};
}
-
private ListBox combo = new ListBox();
private ListBox list = new ListBox();
- private Label echo = new Label();
+
private MultiWordSuggestOracle oracle = new MultiWordSuggestOracle();
+
private SuggestBox suggestBox = new SuggestBox(oracle);
+ private Tree tree = new Tree();
+
public Lists() {
combo.setVisibleItemCount(1);
combo.addChangeListener(this);
@@ -95,36 +164,54 @@
horz.add(combo);
horz.add(list);
horz.add(suggestPanel);
+ horz.add(tree);
VerticalPanel panel = new VerticalPanel();
panel.setHorizontalAlignment(VerticalPanel.ALIGN_LEFT);
panel.add(horz);
- panel.add(echo);
initWidget(panel);
- echoSelection();
+ for (int i = 0; i < fProto.length; ++i) {
+ createItem(fProto[i]);
+ tree.addItem(fProto[i].item);
+ }
+
+ tree.addTreeListener(this);
+ tree.setWidth("20em");
}
public void onChange(Widget sender) {
if (sender == combo) {
fillList(combo.getSelectedIndex());
} else if (sender == list) {
- echoSelection();
}
}
public void onShow() {
}
- private void echoSelection() {
- // Determine which items are selected, and display them.
- String msg = "Selected items: ";
- for (int i = 0; i < list.getItemCount(); ++i) {
- if (list.isItemSelected(i)) {
- msg += list.getItemText(i) + " ";
+ public void onTreeItemSelected(TreeItem item) {
+ }
+
+ public void onTreeItemStateChanged(TreeItem item) {
+ TreeItem child = item.getChild(0);
+ if (child instanceof PendingItem) {
+ item.removeItem(child);
+
+ Proto proto = (Proto) item.getUserObject();
+ for (int i = 0; i < proto.children.length; ++i) {
+ createItem(proto.children[i]);
+ item.addItem(proto.children[i].item);
}
}
- echo.setText(msg);
+ }
+
+ private void createItem(Proto proto) {
+ proto.item = new TreeItem(proto.text);
+ proto.item.setUserObject(proto);
+ if (proto.children != null) {
+ proto.item.addItem(new PendingItem());
+ }
}
private void fillList(int idx) {
@@ -134,7 +221,5 @@
for (int i = 0; i < strings.length; ++i) {
list.addItem(strings[i]);
}
-
- echoSelection();
}
}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Menus.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Menus.java
deleted file mode 100644
index 42965a4..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Menus.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright 2006 Google Inc.
- *
- * 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.gwt.sample.kitchensink.client;
-
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.ui.MenuBar;
-import com.google.gwt.user.client.ui.MenuItem;
-
-/**
- * Demonstrates {@link com.google.gwt.user.client.ui.MenuBar} and
- * {@link com.google.gwt.user.client.ui.MenuItem}.
- */
-public class Menus extends Sink implements Command {
-
- public static SinkInfo init() {
- return new SinkInfo("Menus",
- "The GWT <code>MenuBar</code> class makes it easy to build menus, "
- + "including cascading sub-menus.") {
- public Sink createInstance() {
- return new Menus();
- }
- };
- }
-
- private MenuBar menu = new MenuBar();
-
- public Menus() {
- MenuBar subMenu = new MenuBar(true);
- subMenu.addItem("<code>Code</code>", true, this);
- subMenu.addItem("<strike>Strikethrough</strike>", true, this);
- subMenu.addItem("<u>Underlined</u>", true, this);
-
- MenuBar menu0 = new MenuBar(true);
- menu0.addItem("<b>Bold</b>", true, this);
- menu0.addItem("<i>Italicized</i>", true, this);
- menu0.addItem("More »", true, subMenu);
- MenuBar menu1 = new MenuBar(true);
- menu1.addItem("<font color='#FF0000'><b>Apple</b></font>", true, this);
- menu1.addItem("<font color='#FFFF00'><b>Banana</b></font>", true, this);
- menu1.addItem("<font color='#FFFFFF'><b>Coconut</b></font>", true, this);
- menu1.addItem("<font color='#8B4513'><b>Donut</b></font>", true, this);
- MenuBar menu2 = new MenuBar(true);
- menu2.addItem("Bling", this);
- menu2.addItem("Ginormous", this);
- menu2.addItem("<code>w00t!</code>", true, this);
-
- menu.addItem(new MenuItem("Style", menu0));
- menu.addItem(new MenuItem("Fruit", menu1));
- menu.addItem(new MenuItem("Term", menu2));
-
- menu.setWidth("100%");
-
- initWidget(menu);
- }
-
- public void execute() {
- Window.alert("Thank you for selecting a menu item.");
- }
-
- public void onShow() {
- }
-}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Layouts.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Panels.java
similarity index 68%
rename from samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Layouts.java
rename to samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Panels.java
index 64e3272..36e5282 100644
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Layouts.java
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Panels.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Google Inc.
+ * Copyright 2007 Google Inc.
*
* 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
@@ -15,43 +15,48 @@
*/
package com.google.gwt.sample.kitchensink.client;
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.DisclosurePanel;
import com.google.gwt.user.client.ui.DockPanel;
import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.MenuBar;
+import com.google.gwt.user.client.ui.HorizontalSplitPanel;
+import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.ScrollPanel;
+import com.google.gwt.user.client.ui.TabPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
/**
* Demonstrates various panels and the way they lay widgets out.
*/
-public class Layouts extends Sink {
+public class Panels extends Sink {
public static SinkInfo init() {
return new SinkInfo(
- "Layouts",
- "This page demonstrates some of the basic GWT panels, each of which "
+ "Panels",
+ "<h2>Panels</h2><p>This page demonstrates some of the basic GWT panels, each of which "
+ "arranges its contained widgets differently. "
+ "These panels are designed to take advantage of the browser's "
+ "built-in layout mechanics, which keeps the user interface snappy "
+ "and helps your AJAX code play nicely with existing HTML. "
+ "On the other hand, if you need pixel-perfect control, "
+ "you can tweak things at a low level using the "
- + "<code>DOM</code> class.") {
+ + "<code>DOM</code> class.</p>") {
+
public Sink createInstance() {
- return new Layouts();
+ return new Panels();
+ }
+
+ public String getColor() {
+ return "#fe9915";
}
};
}
- public Layouts() {
+ public Panels() {
HTML contents = new HTML("This is a <code>ScrollPanel</code> contained at "
+ "the center of a <code>DockPanel</code>. "
+ "By putting some fairly large contents "
@@ -102,45 +107,46 @@
vert.add(new Button("--- BigBigBigBig ---"));
vert.add(new Button("tiny"));
- MenuBar menu = new MenuBar();
- MenuBar menu0 = new MenuBar(true), menu1 = new MenuBar(true);
- menu.addItem("menu0", menu0);
- menu.addItem("menu1", menu1);
- menu0.addItem("child00", (Command) null);
- menu0.addItem("child01", (Command) null);
- menu0.addItem("child02", (Command) null);
- menu1.addItem("child10", (Command) null);
- menu1.addItem("child11", (Command) null);
- menu1.addItem("child12", (Command) null);
+ VerticalPanel vp = new VerticalPanel();
+ vp.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
+ vp.setSpacing(8);
+ vp.add(makeLabel("Disclosure Panel"));
+ vp.add(disc);
+ vp.add(makeLabel("Flow Panel"));
+ vp.add(flow);
+ vp.add(makeLabel("Horizontal Panel"));
+ vp.add(horz);
+ vp.add(makeLabel("Vertical Panel"));
+ vp.add(vert);
- String id = HTMLPanel.createUniqueId();
- HTMLPanel html = new HTMLPanel(
- "This is an <code>HTMLPanel</code>. It allows you to add "
- + "components inside existing HTML, like this: " + "<span id='"
- + id + "'></span>"
- + "Notice how the menu just fits snugly in there? Cute.");
- DOM.setStyleAttribute(menu.getElement(), "display", "inline");
- html.add(menu, id);
+ Grid grid = new Grid(4, 4);
+ for (int r = 0; r < 4; ++r) {
+ for (int c = 0; c < 4; ++c) {
+ grid.setWidget(r, c, new Image("images/gwt-logo.png"));
+ }
+ }
- VerticalPanel panel = new VerticalPanel();
- panel.setSpacing(8);
- panel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
+ TabPanel tabs = new TabPanel();
+ tabs.add(vp, "Basic Panels");
+ tabs.add(dock, "Dock Panel");
+ tabs.add(grid, "Tables");
+ tabs.setWidth("100%");
+ tabs.selectTab(0);
- panel.add(makeLabel("Dock Panel"));
- panel.add(dock);
- panel.add(makeLabel("Disclosure Panel"));
- panel.add(disc);
- panel.add(makeLabel("Flow Panel"));
- panel.add(flow);
- panel.add(makeLabel("Horizontal Panel"));
- panel.add(horz);
- panel.add(makeLabel("Vertical Panel"));
- panel.add(vert);
- panel.add(makeLabel("HTML Panel"));
- panel.add(html);
+ HorizontalSplitPanel hSplit = new HorizontalSplitPanel();
+ hSplit.setLeftWidget(tabs);
+ hSplit.setRightWidget(new HTML(
+ "This is some text to make the right side of this " +
+ "splitter look a bit more interesting... " +
+ "This is some text to make the right side of this " +
+ "splitter look a bit more interesting... " +
+ "This is some text to make the right side of this " +
+ "splitter look a bit more interesting... " +
+ "This is some text to make the right side of this " +
+ "splitter look a bit more interesting... "));
- initWidget(panel);
- setStyleName("ks-layouts");
+ initWidget(hSplit);
+ hSplit.setWidth("100%");
}
public void onShow() {
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Popups.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Popups.java
index 8fc00d3..23b2687 100644
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Popups.java
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Popups.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Google Inc.
+ * Copyright 2007 Google Inc.
*
* 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
@@ -19,12 +19,12 @@
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.DockPanel;
-import com.google.gwt.user.client.ui.Frame;
-import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
/**
* Demonstrates {@link com.google.gwt.user.client.ui.PopupPanel} and
@@ -37,27 +37,22 @@
*/
private static class MyDialog extends DialogBox implements ClickListener {
public MyDialog() {
- setText("Sample DialogBox with embedded Frame");
+ setText("Sample DialogBox");
- Frame iframe = new Frame("rembrandt/LaMarcheNocturne.html");
Button closeButton = new Button("Close", this);
HTML msg = new HTML(
- "<center>This is an example of a standard dialog box component.<br> "
- + "You can put pretty much anything you like into it,<br>such as the "
- + "following IFRAME:</center>", true);
+ "<center>This is an example of a standard dialog box component.</center>",
+ true);
DockPanel dock = new DockPanel();
dock.setSpacing(4);
dock.add(closeButton, DockPanel.SOUTH);
dock.add(msg, DockPanel.NORTH);
- dock.add(iframe, DockPanel.CENTER);
+ dock.add(new Image("images/jimmy.jpg"), DockPanel.CENTER);
dock.setCellHorizontalAlignment(closeButton, DockPanel.ALIGN_RIGHT);
- dock.setCellWidth(iframe, "100%");
dock.setWidth("100%");
- iframe.setWidth("36em");
- iframe.setHeight("20em");
setWidget(dock);
}
@@ -74,7 +69,7 @@
super(true);
HTML contents = new HTML(
- "Click anywhere outside this popup to make it disappear.");
+ "Click anywhere outside this popup to make it disappear.");
contents.setWidth("128px");
setWidget(contents);
@@ -84,21 +79,23 @@
public static SinkInfo init() {
return new SinkInfo(
- "Popups",
- "This page demonstrates GWT's built-in support for in-page "
- + "popups. The first is a very simple informational popup that closes "
- + "itself automatically when you click off of it. The second is a more "
- + "complex draggable dialog box. If you're wondering why there's "
- + "a list box at the bottom, it's to demonstrate that you can drag the "
- + "dialog box over it. "
- + "This is noteworthy because some browsers render lists and combos in "
- + "a funky way that, if GWT didn't do some magic for you, would "
- + "normally cause the dialog box to appear to hover <i>underneath</i> "
- + "the list box. Fortunately, you don't have to worry about it -- "
- + "just use the GWT <code>DialogBox</code> class.") {
+ "Popups",
+ "<h2>Popups and Dialog Boxes</h2>"
+ + "<p>This page demonstrates GWT's built-in support for in-page "
+ + "popups. The first is a very simple informational popup that closes "
+ + "itself automatically when you click off of it. The second is a more "
+ + "complex draggable dialog box. If you're wondering why there's "
+ + "a list box at the bottom, it's to demonstrate that you can drag the "
+ + "dialog box over it (this obscure corner case often renders incorrectly "
+ + "on some browsers).</p>") {
+
public Sink createInstance() {
return new Popups();
}
+
+ public String getColor() {
+ return "#bf2a2a";
+ }
};
}
@@ -111,7 +108,7 @@
panel.add(dialogButton);
ListBox list = new ListBox();
- list.setVisibleItemCount(5);
+ list.setVisibleItemCount(1);
for (int i = 0; i < 10; ++i) {
list.addItem("list item " + i);
}
@@ -130,10 +127,8 @@
p.show();
} else if (sender == dialogButton) {
DialogBox dlg = new MyDialog();
- int left = dialogButton.getAbsoluteLeft() + 10;
- int top = dialogButton.getAbsoluteTop() + 10;
- dlg.setPopupPosition(left, top);
dlg.show();
+ dlg.center();
}
}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/RichTextToolbar.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/RichTextToolbar.java
index ff166ec..4fd3d5a 100644
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/RichTextToolbar.java
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/RichTextToolbar.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Google Inc.
+ * Copyright 2007 Google Inc.
*
* 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
@@ -235,10 +235,6 @@
basic.setFontSize(fontSizesConstants[fontSizes.getSelectedIndex() - 1]);
fontSizes.setSelectedIndex(0);
}
-
- if (sender == richText) {
- updateStatus();
- }
}
public void onClick(Widget sender) {
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Sink.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Sink.java
index 9f881eb..5616857 100644
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Sink.java
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Sink.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Google Inc.
+ * Copyright 2007 Google Inc.
*
* 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
@@ -53,6 +53,10 @@
public String getName() {
return name;
}
+
+ public String getColor() {
+ return "#2a8ebf";
+ }
}
/**
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/SinkList.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/SinkList.java
index 6a58a4e..2bb021f 100644
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/SinkList.java
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/SinkList.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Google Inc.
+ * Copyright 2007 Google Inc.
*
* 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
@@ -15,35 +15,69 @@
*/
package com.google.gwt.sample.kitchensink.client;
-import com.google.gwt.sample.kitchensink.client.Sink.SinkInfo;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.Hyperlink;
-import com.google.gwt.user.client.ui.VerticalPanel;
-
import java.util.ArrayList;
+import com.google.gwt.sample.kitchensink.client.Sink.SinkInfo;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Hyperlink;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.Widget;
+
/**
* The left panel that contains all of the sinks, along with a short description
* of each.
*/
public class SinkList extends Composite {
- private VerticalPanel list = new VerticalPanel();
+ private class MouseLink extends Hyperlink {
+
+ private int index;
+
+ public MouseLink(String name, int index) {
+ super(name, name);
+ this.index = index;
+ sinkEvents(Event.MOUSEEVENTS);
+ }
+
+ public void onBrowserEvent(Event event) {
+ switch (DOM.eventGetType(event)) {
+ case Event.ONMOUSEOVER:
+ mouseOver(index);
+ break;
+
+ case Event.ONMOUSEOUT:
+ mouseOut(index);
+ break;
+ }
+
+ super.onBrowserEvent(event);
+ }
+ }
+
+ private HorizontalPanel list = new HorizontalPanel();
private ArrayList sinks = new ArrayList();
+
private int selectedSink = -1;
public SinkList() {
initWidget(list);
+ list.add(new Image("images/gwt-logo.png"));
setStyleName("ks-List");
}
public void addSink(final SinkInfo info) {
String name = info.getName();
- Hyperlink link = new Hyperlink(name, name);
- link.setStyleName("ks-SinkItem");
+ int index = list.getWidgetCount() - 1;
+ MouseLink link = new MouseLink(name, index);
list.add(link);
sinks.add(info);
+
+ list.setCellVerticalAlignment(link, HorizontalPanel.ALIGN_BOTTOM);
+ styleSink(index, false);
}
public SinkInfo find(String sinkName) {
@@ -59,16 +93,50 @@
public void setSinkSelection(String name) {
if (selectedSink != -1) {
- list.getWidget(selectedSink).removeStyleName("ks-SinkItem-selected");
+ styleSink(selectedSink, false);
}
-
+
for (int i = 0; i < sinks.size(); ++i) {
SinkInfo info = (SinkInfo) sinks.get(i);
if (info.getName().equals(name)) {
selectedSink = i;
- list.getWidget(selectedSink).addStyleName("ks-SinkItem-selected");
+ styleSink(selectedSink, true);
return;
}
}
}
+
+ private void mouseOut(int index) {
+ if (index != selectedSink) {
+ colorSink(index, false);
+ }
+ }
+
+ private void mouseOver(int index) {
+ if (index != selectedSink) {
+ colorSink(index, true);
+ }
+ }
+
+ private void styleSink(int index, boolean selected) {
+ String style = (index == 0) ? "ks-FirstSinkItem" : "ks-SinkItem";
+ if (selected) {
+ style += "-selected";
+ }
+
+ Widget w = list.getWidget(index + 1);
+ w.setStyleName(style);
+
+ colorSink(index, selected);
+ }
+
+ private void colorSink(int index, boolean on) {
+ String color = "";
+ if (on) {
+ color = ((SinkInfo) sinks.get(index)).getColor();
+ }
+
+ Widget w = list.getWidget(index + 1);
+ DOM.setStyleAttribute(w.getElement(), "backgroundColor", color);
+ }
}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Splitters.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Splitters.java
deleted file mode 100644
index ff9173f..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Splitters.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2006 Google Inc.
- *
- * 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.gwt.sample.kitchensink.client;
-
-import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.HorizontalSplitPanel;
-import com.google.gwt.user.client.ui.VerticalSplitPanel;
-
-/**
- * Demonstrates the horizontal and vertical split panels.
- */
-public class Splitters extends Sink {
-
- public static SinkInfo init() {
- return new SinkInfo("Splitters",
- "GWT includes horizontal and vertical split panels, which can be used "
- + "to create user-sizable regions in your application.") {
-
- public Sink createInstance() {
- return new Splitters();
- }
- };
- }
-
- private HorizontalSplitPanel hsplit = new HorizontalSplitPanel();
- private VerticalSplitPanel vsplit = new VerticalSplitPanel();
-
- public Splitters() {
- hsplit.setLeftWidget(new HTML("Left side of a horizontal split panel."));
- hsplit.setRightWidget(vsplit);
-
- vsplit.setTopWidget(new HTML("Top of a vertical split panel."));
- vsplit.setBottomWidget(new HTML("Bottom of a vertical split panel."));
-
- hsplit.setSize("30em", "10em");
- vsplit.setSize("100%", "100%");
- initWidget(hsplit);
- }
-}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Tables.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Tables.java
deleted file mode 100644
index c002e40..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Tables.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright 2006 Google Inc.
- *
- * 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.gwt.sample.kitchensink.client;
-
-import com.google.gwt.user.client.ui.FlexTable;
-import com.google.gwt.user.client.ui.HasHorizontalAlignment;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.Grid;
-
-/**
- * Demonstrates {@link com.google.gwt.user.client.ui.Table}.
- */
-public class Tables extends Sink {
-
- public static SinkInfo init() {
- return new SinkInfo(
- "Tables",
- "The <code>FlexTable</code> widget doubles as a tabular data formatter "
- + "and a panel. In "
- + "this example, you'll see that there is an outer table with four cells, "
- + "two of which contain nested components.") {
- public Sink createInstance() {
- return new Tables();
- }
- };
- }
-
- private Grid inner = new Grid(10, 5);
- private FlexTable outer = new FlexTable();
-
- public Tables() {
- outer.setWidget(0, 0, new Image("rembrandt/LaMarcheNocturne.jpg"));
- outer.getFlexCellFormatter().setColSpan(0, 0, 2);
- outer.getFlexCellFormatter().setHorizontalAlignment(0, 0,
- HasHorizontalAlignment.ALIGN_CENTER);
-
- outer.setHTML(1, 0, "Look to the right...<br>"
- + "That's a nested table component ->");
- outer.setWidget(1, 1, inner);
- ((FlexTable.FlexCellFormatter) outer.getCellFormatter())
- .setColSpan(1, 1, 2);
-
- for (int i = 0; i < 10; ++i) {
- for (int j = 0; j < 5; ++j) {
- inner.setText(i, j, "" + i + "," + j);
- }
- }
-
- inner.setWidth("100%");
- outer.setWidth("100%");
-
- inner.setBorderWidth(1);
- outer.setBorderWidth(1);
-
- initWidget(outer);
- }
-
- public void onShow() {
- }
-}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Tabs.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Tabs.java
deleted file mode 100644
index d7d70e6..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Tabs.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright 2006 Google Inc.
- *
- * 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.gwt.sample.kitchensink.client;
-
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.TabPanel;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
-
-/**
- * Demonstrates {"@link com.google.gwt.user.client.ui.TabPanel}.
- */
-public class Tabs extends Sink {
-
- public static SinkInfo init() {
- return new SinkInfo("Tabs",
- "GWT's built-in <code>TabPanel</code> class makes it easy to build tabbed dialogs "
- + "and the like. Notice that no page load occurs when you select the "
- + "different tabs in this page. That's the magic of dynamic HTML.") {
- public Sink createInstance() {
- return new Tabs();
- }
- };
- }
-
- private TabPanel tabs = new TabPanel();
-
- public Tabs() {
- tabs.add(createImage("rembrandt/JohannesElison.jpg"), "1634");
- tabs.add(createImage("rembrandt/SelfPortrait1640.jpg"), "1640");
- tabs.add(createImage("rembrandt/LaMarcheNocturne.jpg"), "1642");
- tabs.add(createImage("rembrandt/TheReturnOfTheProdigalSon.jpg"), "1662");
- tabs.selectTab(0);
-
- tabs.setWidth("100%");
- tabs.setHeight("100%");
- initWidget(tabs);
- }
-
- public void onShow() {
- }
-
- private Widget createImage(String imageUrl) {
- Image image = new Image(imageUrl);
- image.setStyleName("ks-images-Image");
-
- VerticalPanel p = new VerticalPanel();
- p.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
- p.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE);
- p.add(image);
- return p;
- }
-}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Text.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Text.java
index 95c7131..fb6fcf6 100644
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Text.java
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Text.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Google Inc.
+ * Copyright 2007 Google Inc.
*
* 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
@@ -15,7 +15,7 @@
*/
package com.google.gwt.sample.kitchensink.client;
-import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
@@ -35,16 +35,23 @@
public static SinkInfo init() {
return new SinkInfo(
- "Text",
- "GWT includes the standard complement of text-entry widgets, each of which "
- + "supports keyboard and selection events you can use to control text entry. "
- + "In particular, notice that the selection range for each widget is "
- + "updated whenever you press a key. "
- + "This can be a bit tricky on some browsers, but the GWT class library "
- + "takes care of the plumbing for you automatically.") {
+ "Text",
+ "<h2>Basic and Rich Text</h2>"
+ + "<p>GWT includes the standard complement of text-entry widgets, each of which "
+ + "supports keyboard and selection events you can use to control text entry. "
+ + "In particular, notice that the selection range for each widget is "
+ + "updated whenever you press a key.</p>"
+ + "<p>Also notice the rich-text area to the right. This is supported on "
+ + "all major browsers, and will fall back gracefully to the level of "
+ + "functionality supported on each.</p>") {
+
public Sink createInstance() {
return new Text();
}
+
+ public String getColor() {
+ return "#2fba10";
+ }
};
}
@@ -53,17 +60,33 @@
private TextBox textBox = new TextBox();
public Text() {
- VerticalPanel panel = new VerticalPanel();
- panel.setSpacing(8);
- panel.add(new HTML("Normal text box:"));
- panel.add(createTextThing(textBox));
- panel.add(new HTML("Password text box:"));
- panel.add(createTextThing(passwordText));
- panel.add(new HTML("Text area:"));
- panel.add(createTextThing(textArea));
- panel.add(new HTML("Rich text area:"));
- panel.add(createRichText());
- initWidget(panel);
+ TextBox readOnlyTextBox = new TextBox();
+ readOnlyTextBox.setReadOnly(true);
+ readOnlyTextBox.setText("read only");
+ readOnlyTextBox.setWidth("20em");
+
+ VerticalPanel vp = new VerticalPanel();
+ vp.setSpacing(8);
+ vp.add(new HTML("Normal text box:"));
+ vp.add(createTextThing(textBox));
+ vp.add(readOnlyTextBox);
+ vp.add(new HTML("Password text box:"));
+ vp.add(createTextThing(passwordText));
+ vp.add(new HTML("Text area:"));
+ vp.add(createTextThing(textArea));
+
+ textArea.setVisibleLines(5);
+
+ Widget richText = createRichText();
+
+ HorizontalPanel hp = new HorizontalPanel();
+ hp.add(vp);
+ hp.add(richText);
+ hp.setCellHorizontalAlignment(vp, HorizontalPanel.ALIGN_LEFT);
+ hp.setCellHorizontalAlignment(richText, HorizontalPanel.ALIGN_RIGHT);
+
+ initWidget(hp);
+ hp.setWidth("100%");
}
public void onShow() {
@@ -76,7 +99,12 @@
VerticalPanel p = new VerticalPanel();
p.add(tb);
p.add(area);
+
+ area.setHeight("14em");
area.setWidth("100%");
+ tb.setWidth("100%");
+ p.setWidth("100%");
+ DOM.setStyleAttribute(p.getElement(), "margin-right", "4px");
return p;
}
@@ -87,13 +115,6 @@
p.add(textBox);
final HTML echo = new HTML();
- p.add(new Button("select all", new ClickListener() {
- public void onClick(Widget sender) {
- textBox.selectAll();
- textBox.setFocus(true);
- updateText(textBox, echo);
- }
- }));
p.add(echo);
textBox.addKeyboardListener(new KeyboardListenerAdapter() {
@@ -108,11 +129,13 @@
}
});
+ textBox.setWidth("20em");
+ updateText(textBox, echo);
return p;
}
private void updateText(TextBoxBase text, HTML echo) {
- echo.setHTML("Text: " + text.getText() + "<br>" + "Selection: "
- + text.getCursorPos() + ", " + text.getSelectionLength());
+ echo.setHTML("Selection: " + text.getCursorPos() + ", "
+ + text.getSelectionLength());
}
}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Trees.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Trees.java
deleted file mode 100644
index 3e845a6..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Trees.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright 2006 Google Inc.
- *
- * 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.gwt.sample.kitchensink.client;
-
-import com.google.gwt.user.client.ui.Tree;
-import com.google.gwt.user.client.ui.TreeItem;
-import com.google.gwt.user.client.ui.TreeListener;
-
-/**
- * Demonstrates the {@link com.google.gwt.user.client.ui.Tree} widget.
- */
-public class Trees extends Sink implements TreeListener {
-
- private static class PendingItem extends TreeItem {
- public PendingItem() {
- super("Please wait...");
- }
- }
-
- private static class Proto {
- public Proto[] children;
- public TreeItem item;
- public String text;
-
- public Proto(String text) {
- this.text = text;
- }
-
- public Proto(String text, Proto[] children) {
- this(text);
- this.children = children;
- }
- }
-
- private static Proto[] fProto = new Proto[]{
- new Proto("Beethoven", new Proto[]{
- new Proto("Concertos", new Proto[]{
- new Proto("No. 1 - C"), new Proto("No. 2 - B-Flat Major"),
- new Proto("No. 3 - C Minor"), new Proto("No. 4 - G Major"),
- new Proto("No. 5 - E-Flat Major"),}),
- new Proto("Quartets", new Proto[]{
- new Proto("Six String Quartets"), new Proto("Three String Quartets"),
- new Proto("Grosse Fugue for String Quartets"),}),
- new Proto("Sonatas", new Proto[]{
- new Proto("Sonata in A Minor"), new Proto("Sonata in F Major"),}),
- new Proto("Symphonies", new Proto[]{
- new Proto("No. 1 - C Major"), new Proto("No. 2 - D Major"),
- new Proto("No. 3 - E-Flat Major"), new Proto("No. 4 - B-Flat Major"),
- new Proto("No. 5 - C Minor"), new Proto("No. 6 - F Major"),
- new Proto("No. 7 - A Major"), new Proto("No. 8 - F Major"),
- new Proto("No. 9 - D Minor"),}),}),
- new Proto("Brahms", new Proto[]{
- new Proto("Concertos", new Proto[]{
- new Proto("Violin Concerto"), new Proto("Double Concerto - A Minor"),
- new Proto("Piano Concerto No. 1 - D Minor"),
- new Proto("Piano Concerto No. 2 - B-Flat Major"),}),
- new Proto("Quartets", new Proto[]{
- new Proto("Piano Quartet No. 1 - G Minor"),
- new Proto("Piano Quartet No. 2 - A Major"),
- new Proto("Piano Quartet No. 3 - C Minor"),
- new Proto("String Quartet No. 3 - B-Flat Minor"),}),
- new Proto("Sonatas", new Proto[]{
- new Proto("Two Sonatas for Clarinet - F Minor"),
- new Proto("Two Sonatas for Clarinet - E-Flat Major"),}),
- new Proto("Symphonies", new Proto[]{
- new Proto("No. 1 - C Minor"), new Proto("No. 2 - D Minor"),
- new Proto("No. 3 - F Major"), new Proto("No. 4 - E Minor"),}),}),
- new Proto("Mozart", new Proto[]{new Proto("Concertos", new Proto[]{
- new Proto("Piano Concerto No. 12"), new Proto("Piano Concerto No. 17"),
- new Proto("Clarinet Concerto"), new Proto("Violin Concerto No. 5"),
- new Proto("Violin Concerto No. 4"),}),}),};
-
- public static SinkInfo init() {
- return new SinkInfo("Trees",
- "GWT has a built-in <code>Tree</code> widget. "
- + "The tree is focusable and has keyboard support as well.") {
- public Sink createInstance() {
- return new Trees();
- }
- };
- }
-
- private Tree tree = new Tree();
-
- public Trees() {
- for (int i = 0; i < fProto.length; ++i) {
- createItem(fProto[i]);
- tree.addItem(fProto[i].item);
- }
-
- tree.addTreeListener(this);
- initWidget(tree);
- }
-
- public void onShow() {
- }
-
- public void onTreeItemSelected(TreeItem item) {
- }
-
- public void onTreeItemStateChanged(TreeItem item) {
- TreeItem child = item.getChild(0);
- if (child instanceof PendingItem) {
- item.removeItem(child);
-
- Proto proto = (Proto) item.getUserObject();
- for (int i = 0; i < proto.children.length; ++i) {
- createItem(proto.children[i]);
- item.addItem(proto.children[i].item);
- }
- }
- }
-
- private void createItem(Proto proto) {
- proto.item = new TreeItem(proto.text);
- proto.item.setUserObject(proto);
- if (proto.children != null) {
- proto.item.addItem(new PendingItem());
- }
- }
-}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Widgets.java b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Widgets.java
new file mode 100644
index 0000000..db15f2f
--- /dev/null
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/client/Widgets.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright 2007 Google Inc.
+ *
+ * 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.gwt.sample.kitchensink.client;
+
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.CheckBox;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.MenuBar;
+import com.google.gwt.user.client.ui.MenuItem;
+import com.google.gwt.user.client.ui.PushButton;
+import com.google.gwt.user.client.ui.RadioButton;
+import com.google.gwt.user.client.ui.ToggleButton;
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+/**
+ * Demonstrates the various button widgets.
+ */
+public class Widgets extends Sink implements Command {
+
+ public static SinkInfo init() {
+ return new SinkInfo("Widgets", "<h2>Basic Widgets</h2>" +
+ "<p>GWT has all sorts of the basic widgets you would expect from any " +
+ "toolkit.</p><p>Below, you can see various kinds of buttons, check boxes, " +
+ "radio buttons, and menus.</p>") {
+
+ public Sink createInstance() {
+ return new Widgets();
+ }
+
+ public String getColor() {
+ return "#bf2a2a";
+ }
+ };
+ }
+
+ private Button disabledButton = new Button("Disabled Button");
+ private CheckBox disabledCheck = new CheckBox("Disabled Check");
+ private Button normalButton = new Button("Normal Button");
+ private CheckBox normalCheck = new CheckBox("Normal Check");
+ private VerticalPanel panel = new VerticalPanel();
+ private RadioButton radio0 = new RadioButton("group0", "Choice 0");
+ private RadioButton radio1 = new RadioButton("group0", "Choice 1");
+ private RadioButton radio2 = new RadioButton("group0", "Choice 2 (Disabled)");
+ private RadioButton radio3 = new RadioButton("group0", "Choice 3");
+ private PushButton pushButton = new PushButton(new Image("images/gwt-logo.png"));
+ private ToggleButton toggleButton = new ToggleButton(new Image("images/gwt-logo.png"));
+
+ public Widgets() {
+ HorizontalPanel hp;
+
+ panel.add(createMenu());
+
+ panel.add(hp = new HorizontalPanel());
+ hp.setSpacing(8);
+ hp.add(normalButton);
+ hp.add(disabledButton);
+
+ panel.add(hp = new HorizontalPanel());
+ hp.setSpacing(8);
+ hp.add(normalCheck);
+ hp.add(disabledCheck);
+
+ panel.add(hp = new HorizontalPanel());
+ hp.setSpacing(8);
+ hp.add(radio0);
+ hp.add(radio1);
+ hp.add(radio2);
+ hp.add(radio3);
+
+ panel.add(hp = new HorizontalPanel());
+ hp.setSpacing(8);
+ hp.add(pushButton);
+ hp.add(toggleButton);
+
+ disabledButton.setEnabled(false);
+ disabledCheck.setEnabled(false);
+ radio2.setEnabled(false);
+
+ panel.setSpacing(8);
+ initWidget(panel);
+ }
+
+ public MenuBar createMenu() {
+ MenuBar menu = new MenuBar();
+ menu.setAutoOpen(true);
+
+ MenuBar subMenu = new MenuBar(true);
+ subMenu.addItem("<code>Code</code>", true, this);
+ subMenu.addItem("<strike>Strikethrough</strike>", true, this);
+ subMenu.addItem("<u>Underlined</u>", true, this);
+
+ MenuBar menu0 = new MenuBar(true);
+ menu0.addItem("<b>Bold</b>", true, this);
+ menu0.addItem("<i>Italicized</i>", true, this);
+ menu0.addItem("More »", true, subMenu);
+ MenuBar menu1 = new MenuBar(true);
+ menu1.addItem("<font color='#FF0000'><b>Apple</b></font>", true, this);
+ menu1.addItem("<font color='#FFFF00'><b>Banana</b></font>", true, this);
+ menu1.addItem("<font color='#FFFFFF'><b>Coconut</b></font>", true, this);
+ menu1.addItem("<font color='#8B4513'><b>Donut</b></font>", true, this);
+ MenuBar menu2 = new MenuBar(true);
+ menu2.addItem("Bling", this);
+ menu2.addItem("Ginormous", this);
+ menu2.addItem("<code>w00t!</code>", true, this);
+
+ menu.addItem(new MenuItem("Style", menu0));
+ menu.addItem(new MenuItem("Fruit", menu1));
+ menu.addItem(new MenuItem("Term", menu2));
+
+ menu.setWidth("100%");
+
+ return menu;
+ }
+
+ public void execute() {
+ Window.alert("Thank you for selecting a menu item.");
+ }
+
+ public void onShow() {
+ }
+}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/KitchenSink.css b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/KitchenSink.css
index c278e53..47a27b9 100644
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/KitchenSink.css
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/KitchenSink.css
@@ -1,9 +1,13 @@
body {
background-color: white;
color: black;
- font-family: Arial, sans-serif;
+ font-family: Helvetica, Arial, sans-serif;
font-size: 10pt;
- margin: 20px 20px 20px 20px;
+ margin: 0px 20px 20px 20px;
+}
+
+h2 {
+ font-weight: normal;
}
table {
@@ -35,7 +39,6 @@
}
.gwt-DialogBox {
- sborder: 8px solid #C3D9FF;
border: 2px outset;
background-color: white;
}
@@ -54,16 +57,6 @@
.gwt-Frame {
}
-.gwt-HorizontalSplitter .Bar {
- width: 8px;
- background-color: #C3D9FF;
-}
-
-.gwt-VerticalSplitter .Bar {
- height: 8px;
- background-color: #C3D9FF;
-}
-
.gwt-HTML {
}
@@ -101,30 +94,33 @@
}
.gwt-TabPanel {
+ margin-top: 4px;
}
.gwt-TabPanelBottom {
- border-left: 1px solid #87B3FF;
+ background-color: #E8EEF7;
}
.gwt-TabBar {
- background-color: #C3D9FF;
+ padding-top: 2px;
}
.gwt-TabBar .gwt-TabBarFirst {
- height: 100%;
- border-bottom: 1px solid #87B3FF;
+ font-size: 12pt;
+ border-bottom: 2px solid #87B3FF;
+ border-right: 2px solid #87B3FF;
padding-left: 3px;
}
.gwt-TabBar .gwt-TabBarRest {
- border-bottom: 1px solid #87B3FF;
+ border-bottom: 2px solid #87B3FF;
padding-right: 3px;
}
.gwt-TabBar .gwt-TabBarItem {
- border-top: 1px solid #C3D9FF;
- border-bottom: 1px solid #87B3FF;
+ border-top: 2px solid #C3D9FF;
+ border-right: 2px solid #87B3FF;
+ border-bottom: 2px solid #87B3FF;
padding: 2px;
cursor: pointer;
cursor: hand;
@@ -133,10 +129,9 @@
.gwt-TabBar .gwt-TabBarItem-selected {
font-weight: bold;
background-color: #E8EEF7;
- border-top: 1px solid #87B3FF;
- border-left: 1px solid #87B3FF;
- border-right: 1px solid #87B3FF;
- border-bottom: 1px solid #E8EEF7;
+ border-top: 2px solid #87B3FF;
+ border-right: 2px solid #87B3FF;
+ border-bottom: 2px solid #E8EEF7;
padding: 2px;
cursor: default;
}
@@ -147,7 +142,12 @@
.gwt-TextBox {
}
+.gwt-TextBox-readonly {
+ color: #888;
+}
+
.gwt-Tree {
+ background: white;
}
.gwt-Tree .gwt-TreeItem {
@@ -172,7 +172,7 @@
.gwt-PushButton-up {
background-color: #C3D9FF;
padding: 2px;
- border: 1px solid transparent;
+ border: 2px solid transparent;
border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255)
cursor: pointer;
cursor: hand;
@@ -181,7 +181,7 @@
.gwt-PushButton-up-hovering {
background-color: #C3D9FF;
padding: 2px;
- border: 1px solid transparent;
+ border: 2px solid transparent;
border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255)
cursor: pointer;
cursor: hand;
@@ -190,7 +190,7 @@
.gwt-PushButton-down {
background-color: #C3D9FF;
padding: 2px;
- border: 1px solid transparent;
+ border: 2px solid transparent;
border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
cursor: pointer;
cursor: hand;
@@ -199,7 +199,7 @@
.gwt-PushButton-down-hovering {
background-color: #C3D9FF;
padding: 2px;
- border: 1px solid transparent;
+ border: 2px solid transparent;
border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
cursor: pointer;
cursor: hand;
@@ -208,7 +208,7 @@
.gwt-ToggleButton-up {
background-color: #C3D9FF;
padding: 2px;
- border: 1px solid transparent;
+ border: 2px solid transparent;
border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255)
cursor: pointer;
cursor: hand;
@@ -217,7 +217,7 @@
.gwt-ToggleButton-up-hovering {
background-color: #C3D9FF;
padding: 2px;
- border: 1px solid transparent;
+ border: 2px solid transparent;
border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255)
cursor: pointer;
cursor: hand;
@@ -227,7 +227,7 @@
background-color: #C3D9FF;
padding: 2px;
background-color: #E8F1FF;
- border: 1px solid transparent;
+ border: 2px solid transparent;
border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
cursor: pointer;
cursor: hand;
@@ -237,7 +237,7 @@
background-color: #C3D9FF;
padding: 2px;
background-color: #E8F1FF;
- border: 1px solid transparent;
+ border: 2px solid transparent;
border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
cursor: pointer;
cursor: hand;
@@ -335,32 +335,82 @@
/* -------------------------------------------------------------------------- */
.ks-Sink {
- border: 8px solid #C3D9FF;
- background-color: #E8EEF7;
width: 100%;
height: 24em;
}
.ks-Info {
- background-color: #C3D9FF;
- padding: 10px 10px 2px 10px;
+ color: white;
+ padding: 20px 10px 20px 40px;
+ margin-bottom: 10px;
}
.ks-List {
- margin-top: 8px;
- margin-bottom: 8px;
+}
+
+.ks-List .gwt-Image {
+ position: relative;
+ top: 8px;
+}
+
+.ks-List .ks-SinkItem a {
+ text-decoration: none;
+ color: white;
+}
+
+.ks-List .ks-SinkItem-selected a {
+ text-decoration: none;
+ color: white;
+}
+
+.ks-List .ks-FirstSinkItem a {
+ text-decoration: none;
+ color: white;
+}
+
+.ks-List .ks-FirstSinkItem-selected a {
+ text-decoration: none;
+ color: white;
}
.ks-List .ks-SinkItem {
- width: 100%;
- padding: 0.3em;
+ background: #c6cab7;
+ padding: 4px;
+ padding-left: 16px;
padding-right: 16px;
+ margin-right: 3px;
+ border-bottom: 3px solid white;
cursor: pointer;
cursor: hand;
}
.ks-List .ks-SinkItem-selected {
- background-color: #C3D9FF;
+ background: #c6cab7;
+ padding: 4px;
+ padding-left: 16px;
+ padding-right: 16px;
+ margin-right: 3px;
+ padding-bottom: 7px;
+}
+
+.ks-List .ks-FirstSinkItem {
+ background: #c6cab7 url(images/corner.gif) no-repeat top left;
+ padding: 4px;
+ padding-left: 16px;
+ padding-right: 16px;
+ margin-right: 3px;
+ border-bottom: 3px solid white;
+ cursor: pointer;
+ cursor: hand;
+}
+
+.ks-List .ks-FirstSinkItem-selected {
+ background: #c3d9ff url(images/corner.gif) no-repeat top left;
+ padding: 4px;
+ padding-left: 16px;
+ padding-right: 16px;
+ margin-right: 3px;
+ padding-bottom: 7px;
}
.ks-images-Image {
@@ -397,7 +447,3 @@
border: 1px solid #87B3FF;
padding: 4px;
}
-
-.infoProse {
- margin: 8px;
-}
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/KitchenSink.html b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/KitchenSink.html
index 0215b48..8f745d3 100644
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/KitchenSink.html
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/KitchenSink.html
@@ -2,7 +2,7 @@
<head>
<title>Kitchen Sink</title>
</head>
- <body>
+ <body>
<script language='javascript' src='com.google.gwt.sample.kitchensink.KitchenSink.nocache.js'></script>
<iframe src="javascript:''" id='__gwt_historyFrame' style='width:0;height:0;border:0'></iframe>
</body>
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/blanksearching.gif b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/blanksearching.gif
deleted file mode 100644
index 45b7594..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/blanksearching.gif
+++ /dev/null
Binary files differ
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/corner.gif b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/corner.gif
new file mode 100644
index 0000000..97acb41
--- /dev/null
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/corner.gif
Binary files differ
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/gwt-logo.png b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/gwt-logo.png
new file mode 100644
index 0000000..00fda35
--- /dev/null
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/gwt-logo.png
Binary files differ
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/jimmy.jpg b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/jimmy.jpg
new file mode 100755
index 0000000..1453a1e
--- /dev/null
+++ b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/jimmy.jpg
Binary files differ
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/searching.gif b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/searching.gif
deleted file mode 100644
index 167cd5f..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/images/searching.gif
+++ /dev/null
Binary files differ
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/JohannesElison.html b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/JohannesElison.html
deleted file mode 100644
index 0b470e3..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/JohannesElison.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
- <head>
- <title>Johannes Elison</title>
- <link rel='stylesheet' href='rembrandt.css'>
- </head>
-
- <body>
- <center>
- <a href='TheReturnOfTheProdigalSon.html'><img border='0' src='back.gif'></a>
- <span class='header'>Johannes Elison</span>
- <a href='LaMarcheNocturne.html'><img border='0' src='forward.gif'></a>
-
- <p> <img src='JohannesElison.jpg'> </p>
- </center>
- </body>
-</html>
-
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/JohannesElison.jpg b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/JohannesElison.jpg
deleted file mode 100644
index a6d283e..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/JohannesElison.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/LaMarcheNocturne.html b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/LaMarcheNocturne.html
deleted file mode 100644
index 3d5e0b0..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/LaMarcheNocturne.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
- <head>
- <title>La Marche Nocturne</title>
- <link rel='stylesheet' href='rembrandt.css'>
- </head>
-
- <body>
- <center>
- <a href='JohannesElison.html'><img border='0' src='back.gif'></a>
- <span class='header'>La Marche Nocturne</span>
- <a href='SelfPortrait1628.html'><img border='0' src='forward.gif'></a>
-
- <p> <img src='LaMarcheNocturne.jpg'> </p>
- </center>
- </body>
-</html>
-
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/LaMarcheNocturne.jpg b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/LaMarcheNocturne.jpg
deleted file mode 100644
index cd3d39b..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/LaMarcheNocturne.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/SelfPortrait1628.html b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/SelfPortrait1628.html
deleted file mode 100644
index f45acac..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/SelfPortrait1628.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
- <head>
- <title>Self Portrait 1628</title>
- <link rel='stylesheet' href='rembrandt.css'>
- </head>
-
- <body>
- <center>
- <a href='LaMarcheNocturne.html'><img border='0' src='back.gif'></a>
- <span class='header'>Self Portrait 1628</span>
- <a href='SelfPortrait1640.html'><img border='0' src='forward.gif'></a>
-
- <p> <img src='SelfPortrait1628.jpg'> </p>
- </center>
- </body>
-</html>
-
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/SelfPortrait1628.jpg b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/SelfPortrait1628.jpg
deleted file mode 100644
index 688d694..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/SelfPortrait1628.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/SelfPortrait1640.html b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/SelfPortrait1640.html
deleted file mode 100644
index b71902f..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/SelfPortrait1640.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
- <head>
- <title>Self Portrait 1640</title>
- <link rel='stylesheet' href='rembrandt.css'>
- </head>
-
- <body>
- <center>
- <a href='SelfPortrait1628.html'><img border='0' src='back.gif'></a>
- <span class='header'>Self Portrait 1640</span>
- <a href='TheArtistInHisStudio.html'><img border='0' src='forward.gif'></a>
-
- <p> <img src='SelfPortrait1640.jpg'> </p>
- </center>
- </body>
-</html>
-
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/SelfPortrait1640.jpg b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/SelfPortrait1640.jpg
deleted file mode 100644
index 89e71b1..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/SelfPortrait1640.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/TheArtistInHisStudio.html b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/TheArtistInHisStudio.html
deleted file mode 100644
index 70d0e6e..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/TheArtistInHisStudio.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
- <head>
- <title>The Artist in His Studio</title>
- <link rel='stylesheet' href='rembrandt.css'>
- </head>
-
- <body>
- <center>
- <a href='SelfPortrait1640.html'><img border='0' src='back.gif'></a>
- <span class='header'>The Artist in His Studio</span>
- <a href='TheReturnOfTheProdigalSon.html'><img border='0' src='forward.gif'></a>
-
- <p> <img src='TheArtistInHisStudio.jpg'> </p>
- </center>
- </body>
-</html>
-
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/TheArtistInHisStudio.jpg b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/TheArtistInHisStudio.jpg
deleted file mode 100644
index 5835879..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/TheArtistInHisStudio.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/TheReturnOfTheProdigalSon.html b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/TheReturnOfTheProdigalSon.html
deleted file mode 100644
index 83c2ed1..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/TheReturnOfTheProdigalSon.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
- <head>
- <title>The Return of the Prodigal Son</title>
- <link rel='stylesheet' href='rembrandt.css'>
- </head>
-
- <body>
- <center>
- <a href='TheArtistInHisStudio.html'><img border='0' src='back.gif'></a>
- <span class='header'>The Return of the Prodigal Son</span>
- <a href='JohannesElison.html'><img border='0' src='forward.gif'></a>
-
- <p> <img src='TheReturnOfTheProdigalSon.jpg'> </p>
- </center>
- </body>
-</html>
-
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/TheReturnOfTheProdigalSon.jpg b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/TheReturnOfTheProdigalSon.jpg
deleted file mode 100644
index 31f30b0..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/TheReturnOfTheProdigalSon.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/back.gif b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/back.gif
deleted file mode 100644
index 2a59fc2..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/back.gif
+++ /dev/null
Binary files differ
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/forward.gif b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/forward.gif
deleted file mode 100644
index 6216167..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/forward.gif
+++ /dev/null
Binary files differ
diff --git a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/rembrandt.css b/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/rembrandt.css
deleted file mode 100644
index cd8ae2c..0000000
--- a/samples/kitchensink/src/com/google/gwt/sample/kitchensink/public/rembrandt/rembrandt.css
+++ /dev/null
@@ -1,8 +0,0 @@
-.header {
- font-weight:bold;
- font-size:150%;
- font-family: arial, sans-serif;
- font-style: italic;
- margin-left: 1em;
- margin-right: 1em;
-}