You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2009/04/01 16:34:32 UTC

svn commit: r760903 - in /incubator/pivot/trunk: demos/lib/ demos/src/pivot/demos/dom/ wtk/src/pivot/wtk/effects/ wtk/src/pivot/wtk/media/drawing/ wtk/src/pivot/wtk/skin/terra/ wtk/src/pivot/wtkx/

Author: gbrown
Date: Wed Apr  1 14:34:19 2009
New Revision: 760903

URL: http://svn.apache.org/viewvc?rev=760903&view=rev
Log:
Add IMClient demo.

Added:
    incubator/pivot/trunk/demos/src/pivot/demos/dom/IMClient.java
    incubator/pivot/trunk/demos/src/pivot/demos/dom/dom_test.html
    incubator/pivot/trunk/demos/src/pivot/demos/dom/im_client.html
    incubator/pivot/trunk/demos/src/pivot/demos/dom/im_client.wtkx
    incubator/pivot/trunk/wtk/src/pivot/wtk/effects/FadeTransition.java
      - copied, changed from r760897, incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/FadeTransition.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/effects/SlideTransition.java
      - copied, changed from r760897, incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/SlideTransition.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Ellipse.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Polygon.java
Removed:
    incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/FadeTransition.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/SlideTransition.java
Modified:
    incubator/pivot/trunk/demos/lib/smack.jar
    incubator/pivot/trunk/demos/lib/smackx.jar
    incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Shape.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraListButtonSkin.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraMenuPopupSkin.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraSheetSkin.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraTooltipSkin.java
    incubator/pivot/trunk/wtk/src/pivot/wtkx/WTKXSerializer.java

Modified: incubator/pivot/trunk/demos/lib/smack.jar
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/demos/lib/smack.jar?rev=760903&r1=760902&r2=760903&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/pivot/trunk/demos/lib/smackx.jar
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/demos/lib/smackx.jar?rev=760903&r1=760902&r2=760903&view=diff
==============================================================================
Binary files - no diff available.

Added: incubator/pivot/trunk/demos/src/pivot/demos/dom/IMClient.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/demos/src/pivot/demos/dom/IMClient.java?rev=760903&view=auto
==============================================================================
--- incubator/pivot/trunk/demos/src/pivot/demos/dom/IMClient.java (added)
+++ incubator/pivot/trunk/demos/src/pivot/demos/dom/IMClient.java Wed Apr  1 14:34:19 2009
@@ -0,0 +1,217 @@
+/*
+ * Copyright (c) 2009 VMware, 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 pivot.demos.dom;
+
+import org.jivesoftware.smack.ConnectionConfiguration;
+import org.jivesoftware.smack.PacketListener;
+import org.jivesoftware.smack.XMPPConnection;
+import org.jivesoftware.smack.XMPPException;
+import org.jivesoftware.smack.filter.PacketFilter;
+import org.jivesoftware.smack.filter.PacketTypeFilter;
+import org.jivesoftware.smack.packet.Message;
+import org.jivesoftware.smack.packet.Packet;
+
+import pivot.collections.Dictionary;
+import pivot.util.concurrent.Task;
+import pivot.util.concurrent.TaskExecutionException;
+import pivot.util.concurrent.TaskListener;
+import pivot.wtk.Application;
+import pivot.wtk.ApplicationContext;
+import pivot.wtk.BrowserApplicationContext;
+import pivot.wtk.Button;
+import pivot.wtk.ButtonPressListener;
+import pivot.wtk.CardPane;
+import pivot.wtk.Component;
+import pivot.wtk.ComponentKeyListener;
+import pivot.wtk.Display;
+import pivot.wtk.Form;
+import pivot.wtk.Keyboard;
+import pivot.wtk.Label;
+import pivot.wtk.PushButton;
+import pivot.wtk.TextInput;
+import pivot.wtk.Window;
+import pivot.wtk.effects.FadeTransition;
+import pivot.wtk.effects.Transition;
+import pivot.wtk.effects.TransitionListener;
+import pivot.wtkx.WTKXSerializer;
+
+public class IMClient implements Application {
+    /**
+     * Task for asynchronously logging into Jabber.
+     *
+     * @author gbrown
+     */
+    private class LoginTask extends Task<Void> {
+        public Void execute() throws TaskExecutionException {
+            try {
+                String domain = domainTextInput.getText();
+
+                ConnectionConfiguration connectionConfiguration = new ConnectionConfiguration(domain);
+                xmppConnection = new XMPPConnection(connectionConfiguration);
+
+                String username = usernameTextInput.getText();
+                String password = passwordTextInput.getText();
+                xmppConnection.connect();
+                xmppConnection.login(username, password);
+            } catch(XMPPException exception) {
+                throw new TaskExecutionException(exception);
+            }
+
+            return null;
+        }
+    }
+
+    private XMPPConnection xmppConnection = null;
+
+    private Window window = null;
+    private CardPane cardPane = null;
+    private Form loginForm = null;
+
+    private TextInput usernameTextInput;
+    private TextInput passwordTextInput;
+    private TextInput domainTextInput;
+
+    private PushButton loginButton = null;
+    private Label errorMessageLabel = null;
+
+    private Label messageLabel = null;
+
+    private ApplicationContext.ScheduledCallback scheduledFadeCallback = null;
+
+    public void startup(Display display, Dictionary<String, String> properties)
+        throws Exception {
+        WTKXSerializer wtkxSerializer = new WTKXSerializer();
+        window = new Window((Component)wtkxSerializer.readObject(getClass().getResource("im_client.wtkx")));
+
+        cardPane = (CardPane)wtkxSerializer.getObjectByName("cardPane");
+        loginForm = (Form)wtkxSerializer.getObjectByName("loginForm");
+
+        loginForm.getComponentKeyListeners().add(new ComponentKeyListener() {
+            public boolean keyTyped(Component component, char character) {
+                return false;
+            }
+
+            public boolean keyPressed(Component component, int keyCode, Keyboard.KeyLocation keyLocation) {
+                if (keyCode == Keyboard.KeyCode.ENTER) {
+                    login();
+                }
+
+                return false;
+            }
+
+            public boolean keyReleased(Component component, int keyCode, Keyboard.KeyLocation keyLocation) {
+                return false;
+            }
+        });
+
+        usernameTextInput = (TextInput)wtkxSerializer.getObjectByName("usernameTextInput");
+        passwordTextInput = (TextInput)wtkxSerializer.getObjectByName("passwordTextInput");
+        domainTextInput = (TextInput)wtkxSerializer.getObjectByName("domainTextInput");
+
+        loginButton = (PushButton)wtkxSerializer.getObjectByName("loginButton");
+        loginButton.getButtonPressListeners().add(new ButtonPressListener() {
+            public void buttonPressed(final Button button) {
+                login();
+            }
+        });
+
+        errorMessageLabel = (Label)wtkxSerializer.getObjectByName("errorMessageLabel");
+
+        messageLabel = (Label)wtkxSerializer.getObjectByName("messageLabel");
+
+        window.setMaximized(true);
+        window.open(display);
+    }
+
+    public boolean shutdown(boolean optional) throws Exception {
+        return false;
+    }
+
+    public void suspend() {
+        // No-op
+    }
+
+    public void resume() {
+        // No-op
+    }
+
+    private void login() {
+        if (usernameTextInput.getText().length() == 0) {
+            errorMessageLabel.setText("Username is required.");
+        } else if (passwordTextInput.getText().length() == 0) {
+            errorMessageLabel.setText("Password is required.");
+        } else if (domainTextInput.getText().length() == 0) {
+            errorMessageLabel.setText("Domain is required.");
+        } else {
+            LoginTask loginTask = new LoginTask();
+            loginTask.execute(new TaskListener<Void>() {
+                public void taskExecuted(Task<Void> task) {
+                    loginButton.setEnabled(true);
+                    cardPane.setSelectedIndex(1);
+                    listenForMessages();
+                }
+
+                public void executeFailed(Task<Void> task) {
+                    loginButton.setEnabled(true);
+                    errorMessageLabel.setText(task.getFault().getMessage());
+                }
+            });
+
+            errorMessageLabel.setText(null);
+            loginButton.setEnabled(false);
+        }
+    }
+
+    private void listenForMessages() {
+        PacketFilter filter = new PacketTypeFilter(Message.class);
+
+        PacketListener packetListener = new PacketListener() {
+            public void processPacket(Packet packet) {
+                final Message message = (Message)packet;
+
+                ApplicationContext.queueCallback(new Runnable() {
+                    public void run() {
+                        // Show the message text
+                        String body = message.getBody();
+                        messageLabel.setText(body);
+
+                        // Notify the page that a message was received
+                        BrowserApplicationContext.eval("messageReceived(\"" + body + "\");", IMClient.this);
+
+                        // Cancel any pending fade and schedule a new fade callback
+                        if (scheduledFadeCallback != null) {
+                            scheduledFadeCallback.cancel();
+                        }
+
+                        scheduledFadeCallback = ApplicationContext.scheduleCallback(new Runnable() {
+                            public void run() {
+                                FadeTransition fadeTransition = new FadeTransition(messageLabel, 500, 30);
+
+                                fadeTransition.start(new TransitionListener() {
+                                    public void transitionCompleted(Transition transition) {
+                                        messageLabel.setText(null);
+                                    }
+                                });
+                            }
+                        }, 2500);
+                    }
+                });
+            }
+        };
+
+        xmppConnection.addPacketListener(packetListener, filter);
+    }
+}

Added: incubator/pivot/trunk/demos/src/pivot/demos/dom/dom_test.html
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/demos/src/pivot/demos/dom/dom_test.html?rev=760903&view=auto
==============================================================================
    (empty)

Added: incubator/pivot/trunk/demos/src/pivot/demos/dom/im_client.html
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/demos/src/pivot/demos/dom/im_client.html?rev=760903&view=auto
==============================================================================
    (empty)

Added: incubator/pivot/trunk/demos/src/pivot/demos/dom/im_client.wtkx
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/demos/src/pivot/demos/dom/im_client.wtkx?rev=760903&view=auto
==============================================================================
--- incubator/pivot/trunk/demos/src/pivot/demos/dom/im_client.wtkx (added)
+++ incubator/pivot/trunk/demos/src/pivot/demos/dom/im_client.wtkx Wed Apr  1 14:34:19 2009
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (c) 2009 VMware, 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.
+-->
+
+<Border styles="{padding:8}"
+    xmlns:wtkx="http://incubator.apache.org/pivot/wtkx/1.1"
+    xmlns="pivot.wtk">
+    <content>
+        <CardPane wtkx:id="cardPane" orientation="horizontal" selectedIndex="0">
+            <Form wtkx:id="loginForm" styles="{fieldAlignment:'justify'}">
+                <sections>
+                    <Form.Section>
+                        <TextInput wtkx:id="usernameTextInput" Form.name="Username" />
+                        <TextInput wtkx:id="passwordTextInput" Form.name="Password" password="true" />
+                        <TextInput wtkx:id="domainTextInput" Form.name="Domain"/>
+                        <FlowPane>
+                            <PushButton wtkx:id="loginButton" buttonData="Login"/>
+                        </FlowPane>
+                        <Label wtkx:id="errorMessageLabel" styles="{color:'#ff0000', wrapText:true}"/>
+                    </Form.Section>
+                </sections>
+            </Form>
+
+            <Border title="Messages" styles="{padding:4}">
+                <content>
+                    <Label wtkx:id="messageLabel" styles="{horizontalAlignment:'center', verticalAlignment:'center', wrapText:true}"/>
+                </content>
+            </Border>
+        </CardPane>
+    </content>
+</Border>

Copied: incubator/pivot/trunk/wtk/src/pivot/wtk/effects/FadeTransition.java (from r760897, incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/FadeTransition.java)
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/effects/FadeTransition.java?p2=incubator/pivot/trunk/wtk/src/pivot/wtk/effects/FadeTransition.java&p1=incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/FadeTransition.java&r1=760897&r2=760903&rev=760903&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/FadeTransition.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/effects/FadeTransition.java Wed Apr  1 14:34:19 2009
@@ -13,12 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package pivot.wtk.skin.terra;
+package pivot.wtk.effects;
 
 import pivot.wtk.Component;
-import pivot.wtk.effects.FadeDecorator;
-import pivot.wtk.effects.Transition;
-import pivot.wtk.effects.TransitionListener;
 
 /**
  * Fade transition class.

Copied: incubator/pivot/trunk/wtk/src/pivot/wtk/effects/SlideTransition.java (from r760897, incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/SlideTransition.java)
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/effects/SlideTransition.java?p2=incubator/pivot/trunk/wtk/src/pivot/wtk/effects/SlideTransition.java&p1=incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/SlideTransition.java&r1=760897&r2=760903&rev=760903&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/SlideTransition.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/effects/SlideTransition.java Wed Apr  1 14:34:19 2009
@@ -13,13 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package pivot.wtk.skin.terra;
+package pivot.wtk.effects;
 
 import pivot.wtk.Component;
 import pivot.wtk.Container;
-import pivot.wtk.effects.Transition;
-import pivot.wtk.effects.TransitionListener;
-import pivot.wtk.effects.TranslationDecorator;
 import pivot.wtk.effects.easing.Easing;
 import pivot.wtk.effects.easing.Quadratic;
 

Added: incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Ellipse.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Ellipse.java?rev=760903&view=auto
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Ellipse.java (added)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Ellipse.java Wed Apr  1 14:34:19 2009
@@ -0,0 +1,28 @@
+package pivot.wtk.media.drawing;
+
+import java.awt.Graphics2D;
+
+public class Ellipse extends Shape {
+
+    @Override
+    public boolean contains(int x, int y) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    public int getHeight() {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+
+    public int getWidth() {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+
+    public void paint(Graphics2D graphics) {
+        // TODO Auto-generated method stub
+
+    }
+
+}

Added: incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Polygon.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Polygon.java?rev=760903&view=auto
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Polygon.java (added)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Polygon.java Wed Apr  1 14:34:19 2009
@@ -0,0 +1,28 @@
+package pivot.wtk.media.drawing;
+
+import java.awt.Graphics2D;
+
+public class Polygon extends Shape {
+
+    @Override
+    public boolean contains(int x, int y) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    public int getHeight() {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+
+    public int getWidth() {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+
+    public void paint(Graphics2D graphics) {
+        // TODO Auto-generated method stub
+
+    }
+
+}

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Shape.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Shape.java?rev=760903&r1=760902&r2=760903&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Shape.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/media/drawing/Shape.java Wed Apr  1 14:34:19 2009
@@ -90,11 +90,14 @@
         return null;
     }
 
-    public AffineTransform getTransform() {
-        // TODO
-        return null;
-    }
-
+    /**
+     * TODO Subclasses should override this method to perform an inverse
+     * transformation and map to the untransformed coordinate space.
+     *
+     * @param x
+     * @param y
+     * @return
+     */
     public abstract boolean contains(int x, int y);
 
     public Paint getFill() {
@@ -180,4 +183,9 @@
     public void setTranslateY(double translateY) {
         this.translateY = translateY;
     }
+
+    public AffineTransform getTransform() {
+        // TODO
+        return null;
+    }
 }

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java?rev=760903&r1=760902&r2=760903&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java Wed Apr  1 14:34:19 2009
@@ -35,6 +35,7 @@
 import pivot.wtk.Theme;
 import pivot.wtk.Window;
 import pivot.wtk.WindowStateListener;
+import pivot.wtk.effects.FadeTransition;
 import pivot.wtk.effects.Transition;
 import pivot.wtk.effects.TransitionListener;
 import pivot.wtk.skin.CalendarButtonSkin;

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraListButtonSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraListButtonSkin.java?rev=760903&r1=760902&r2=760903&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraListButtonSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraListButtonSkin.java Wed Apr  1 14:34:19 2009
@@ -38,6 +38,7 @@
 import pivot.wtk.Theme;
 import pivot.wtk.Window;
 import pivot.wtk.WindowStateListener;
+import pivot.wtk.effects.FadeTransition;
 import pivot.wtk.effects.Transition;
 import pivot.wtk.effects.TransitionListener;
 import pivot.wtk.skin.ListButtonSkin;

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraMenuPopupSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraMenuPopupSkin.java?rev=760903&r1=760902&r2=760903&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraMenuPopupSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraMenuPopupSkin.java Wed Apr  1 14:34:19 2009
@@ -31,6 +31,7 @@
 import pivot.wtk.Theme;
 import pivot.wtk.Window;
 import pivot.wtk.effects.DropShadowDecorator;
+import pivot.wtk.effects.FadeTransition;
 import pivot.wtk.effects.Transition;
 import pivot.wtk.effects.TransitionListener;
 import pivot.wtk.skin.WindowSkin;

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraSheetSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraSheetSkin.java?rev=760903&r1=760902&r2=760903&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraSheetSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraSheetSkin.java Wed Apr  1 14:34:19 2009
@@ -32,6 +32,7 @@
 import pivot.wtk.Theme;
 import pivot.wtk.Window;
 import pivot.wtk.effects.DropShadowDecorator;
+import pivot.wtk.effects.SlideTransition;
 import pivot.wtk.effects.Transition;
 import pivot.wtk.effects.TransitionListener;
 import pivot.wtk.skin.WindowSkin;

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraTooltipSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraTooltipSkin.java?rev=760903&r1=760902&r2=760903&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraTooltipSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/skin/terra/TerraTooltipSkin.java Wed Apr  1 14:34:19 2009
@@ -34,6 +34,7 @@
 import pivot.wtk.TooltipListener;
 import pivot.wtk.Window;
 import pivot.wtk.effects.DropShadowDecorator;
+import pivot.wtk.effects.FadeTransition;
 import pivot.wtk.effects.Transition;
 import pivot.wtk.effects.TransitionListener;
 import pivot.wtk.skin.WindowSkin;

Modified: incubator/pivot/trunk/wtk/src/pivot/wtkx/WTKXSerializer.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtkx/WTKXSerializer.java?rev=760903&r1=760902&r2=760903&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtkx/WTKXSerializer.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtkx/WTKXSerializer.java Wed Apr  1 14:34:19 2009
@@ -142,6 +142,10 @@
 
     public Object readObject(String resourceName) throws IOException,
         SerializationException {
+        if (resourceName == null) {
+            throw new IllegalArgumentException("resourceName is null.");
+        }
+
         ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
         URL location = classLoader.getResource(resourceName);
 
@@ -154,6 +158,10 @@
     }
 
     public Object readObject(URL location) throws IOException, SerializationException {
+        if (location == null) {
+            throw new IllegalArgumentException("location is null.");
+        }
+
         this.location = location;
         return readObject(new BufferedInputStream(location.openStream()));
     }
@@ -161,6 +169,10 @@
     @SuppressWarnings("unchecked")
     public Object readObject(InputStream inputStream) throws IOException,
         SerializationException {
+        if (inputStream == null) {
+            throw new IllegalArgumentException("inputStream is null.");
+        }
+
         Object object = null;
 
         // Clear any previous named objects and include serializers