From e9dc470dcced016205495449283e2718ec7d87c3 Mon Sep 17 00:00:00 2001 From: bjorn Date: Fri, 7 Nov 2008 09:55:56 +0000 Subject: [PATCH] More work on IE 6 bugs. --- .../chalmers/cs/gf/gwt/client/FridgeApp.java | 2 +- .../cs/gf/gwt/client/FridgeTextPanel.java | 34 ++++++++++++++----- .../se/chalmers/cs/gf/gwt/public/Fridge.css | 19 ++++++++++- 3 files changed, 45 insertions(+), 10 deletions(-) diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeApp.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeApp.java index b4a719131..4e24a8416 100644 --- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeApp.java +++ b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeApp.java @@ -143,7 +143,7 @@ public class FridgeApp implements EntryPoint { magnetFactory = new MagnetFactory(dragController, magnetClickListener); VerticalPanel vPanel = new VerticalPanel(); - vPanel.setWidth("100%"); + vPanel.setStyleName("my-FridgeApp"); vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER); vPanel.add(createTextPanel()); vPanel.add(createButtonPanel()); diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeTextPanel.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeTextPanel.java index f5930886c..aad0773a6 100644 --- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeTextPanel.java +++ b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeTextPanel.java @@ -17,9 +17,25 @@ public class FridgeTextPanel extends Composite { public FridgeTextPanel (MagnetFactory magnetFactory) { this.magnetFactory = magnetFactory; mainPanel = new FlowPanel(); - initWidget(mainPanel); + FlowPanel wrapper = new FlowPanel(); + wrapper.add(createMinHeightProp()); + wrapper.add(mainPanel); + wrapper.add(createFloatClearer()); + initWidget(wrapper); setStylePrimaryName("my-FridgeTextPanel"); } + + private Widget createMinHeightProp() { + Widget prop = new FlowPanel(); + prop.setStylePrimaryName("prop"); + return prop; + } + + private Widget createFloatClearer() { + Widget clear = new FlowPanel(); + clear.setStylePrimaryName("clear"); + return clear; + } public void setEngaged(boolean engaged) { if (engaged) { @@ -32,11 +48,13 @@ public class FridgeTextPanel extends Composite { public String getText () { StringBuilder sb = new StringBuilder(); for (Widget w : mainPanel) { - String word = ((Magnet)w).getText(); - if (sb.length() > 0) { - sb.append(' '); + if (w instanceof Magnet) { + String word = ((Magnet)w).getText(); + if (sb.length() > 0) { + sb.append(' '); + } + sb.append(word); } - sb.append(word); } return sb.toString(); } @@ -52,12 +70,12 @@ public class FridgeTextPanel extends Composite { fireChange(); } } - + public void clear () { mainPanel.clear(); fireChange(); } - + public void addMagnet (Magnet magnet) { mainPanel.add(magnetFactory.createUsedMagnet(magnet)); fireChange(); @@ -70,7 +88,7 @@ public class FridgeTextPanel extends Composite { fireChange(); } } - + protected void fireChange() { listeners.fireChange(this); } diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/Fridge.css b/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/Fridge.css index 63bf07d03..8968c3aea 100644 --- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/Fridge.css +++ b/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/Fridge.css @@ -2,6 +2,10 @@ body { background: url("brushed-metal.png"); } +.my-FridgeApp { + +} + .my-FridgeTextPanel, .my-FridgeBagPanel, .my-translations, .my-SettingsPanel { margin: 1em; } @@ -9,7 +13,6 @@ body { .my-FridgeTextPanel, .my-FridgeBagPanel { min-height: 2.4em; padding: 0.2em; - overflow: auto; } .my-FridgeTextPanel { @@ -22,6 +25,20 @@ body { background-color: #dddddd; } +/* IE min-height hack */ +.my-FridgeTextPanel .prop { + height: 2.4em; + float: right; + width: 1px; +} + +/* Used for clearing floats to ensure that float container is tall enough */ +.my-FridgeTextPanel .clear { + clear: both; + height: 1px; + overflow: hidden; +} + .my-FridgeBagPanel { border: 3px solid #dddddd; }