[subversion:31] 0.30L - different style of tweet entry box (unfinished)

  • From: sherod@kenai.com
  • To: commits@twitterfx.kenai.com
  • Subject: [subversion:31] 0.30L - different style of tweet entry box (unfinished)
  • Date: Thu, 30 Apr 2009 11:23:29 +0000 (GMT)

Repository: subversion
Revision:   31
Author:     sherod
Date:       2009-04-30 11:23:20 UTC
Link:      
http://kenai.com/projects/twitterfx/sources/subversion/revision/31

Log Message:
-----------
0.30L - different style of tweet entry box (unfinished)  

Removal of requirement to run as WebStart so that applets work!

Also, added missing lucene.jar

Modified Paths:
--------------
    twitterfx/nbproject/project.properties
    twitterfx/src/twitterfx/Main.fx
    twitterfx/src/twitterfx/components/FilterTextBox.fx
    twitterfx/src/twitterfx/components/FilterTextField.fx
    twitterfx/src/twitterfx/components/FilterTextFieldComponent.fx
    twitterfx/src/twitterfx/components/FriendNode.fx
    twitterfx/src/twitterfx/components/HyperText.fx
    twitterfx/src/twitterfx/components/StatusNode.fx
    twitterfx/src/twitterfx/components/TextArea.fx
    twitterfx/src/twitterfx/components/ToolBox.fx
    twitterfx/src/twitterfx/components/TweetTextComponent.fx
    twitterfx/src/twitterfx/components/URLEntryDialog.fx
    twitterfx/src/twitterfx/components/URLTextField.fx
    twitterfx/src/twitterfx/panels/CurrentUserPanel.fx
    twitterfx/src/twitterfx/panels/HomePanel.fx
    twitterfx/src/twitterfx/panels/SendTweetPanel.fx
    twitterfx/src/twitterfx/panels/TopControlPanel.fx
    twitterfx/src/twitterfx/panels/TwitterConfig.fx
    twitterfx/src/twitterfx/panels/WelcomePanel.fx
    twitterfx/src/twitterfx/twitter/DirectListParser.fx
    twitterfx/src/twitterfx/twitter/PersistanceAPI.fx
    twitterfx/src/twitterfx/twitter/RequestHandler.fx
    twitterfx/src/twitterfx/twitter/TwitterAPI.fx
    twitterfx/src/twitterfx/twitter/UpdateRequestHandler.fx
    twitterfx/src/twitterfx/twitterfx.css
    twitterfx/src/twitterfx/util/ClipboardServices.fx

Added Paths:
-----------
    twitterfx/lucene-core-2.4.1.jar
    twitterfx/src/twitterfx/JKeyboardHandler.fx
    twitterfx/src/twitterfx/KeyboardHandler.java
    twitterfx/src/twitterfx/MyEventQueue.java

Diffs:
-----
Index: twitterfx/nbproject/project.properties
===================================================================
--- twitterfx/nbproject/project.properties      (revision 30)
+++ twitterfx/nbproject/project.properties      (revision 31)
@@ -37,6 +37,7 @@
 file.reference.jtoaster-1.0.4.jar=jtoaster-1.0.4.jar
 file.reference.jtwitter.jar=../Downloads/jtwitter.jar

file.reference.lucene-core-2.4.1.jar=../../Downloads/lucene-2.4.1/lucen
e-core-2.4.1.jar
+file.reference.lucene-core-2.4.1.jar-1=lucene-core-2.4.1.jar
 file.reference.swingx-0.9.7.jar=swingx-0.9.7.jar
 includes=**
 jar.compress=true
@@ -45,14 +46,14 @@
     ${file.reference.jtoaster-1.0.4.jar}:\
     ${file.reference.jnlp.jar-1}:\
     ${file.reference.h2-1.1.107.jar}:\
-    ${file.reference.lucene-core-2.4.1.jar}:\
     ${file.reference.commons-codec-1.3.jar}:\
     ${file.reference.commons-logging-1.1.1.jar}:\
     ${file.reference.httpcore-4.0.jar}:\
     ${file.reference.apache-mime4j-0.5.jar}:\
     ${file.reference.httpclient-4.0-beta2.jar}:\
     ${file.reference.httpmime-4.0-beta2.jar}:\
-    ${file.reference.swingx-0.9.7.jar}
+    ${file.reference.swingx-0.9.7.jar}:\
+    ${file.reference.lucene-core-2.4.1.jar-1}
 # Space-separated list of extra javac options
 javac.compilerargs=
 javac.deprecation=false
Index: twitterfx/src/twitterfx/panels/HomePanel.fx
===================================================================
--- twitterfx/src/twitterfx/panels/HomePanel.fx (revision 30)
+++ twitterfx/src/twitterfx/panels/HomePanel.fx (revision 31)
@@ -37,6 +37,7 @@
 import twitterfx.panels.ScrollPanel;
 import twitterfx.twitter.TweetGroup;
 import twitterfx.twitter.TwitterAPI;
+import twitterfx.browser.BareBonesBrowserLaunch;
 
 
 
@@ -251,7 +252,7 @@
         shortLabel: "Search"
         action: function () {
 
-            Main.bs.showDocument(new
URL("http://search.twitter.com/";));
+           
BareBonesBrowserLaunch.openURL("http://search.twitter.com/";);
             togglePanel();
 
 
Index: twitterfx/src/twitterfx/panels/WelcomePanel.fx
===================================================================
--- twitterfx/src/twitterfx/panels/WelcomePanel.fx      (revision 30)
+++ twitterfx/src/twitterfx/panels/WelcomePanel.fx      (revision 31)
@@ -246,7 +246,7 @@
         width: bind axailisText.boundsInLocal.width
         height: bind axailisText.boundsInLocal.height
         onMouseReleased: function(e:MouseEvent) {
-            Main.bs.showDocument(new
java.net.URL("http://www.axialis.com/free/icons/";));
+           
BareBonesBrowserLaunch.openURL("http://www.axialis.com/free/icons/";);
         }
     }
 
@@ -272,7 +272,7 @@
         width: bind bluebirdText.boundsInLocal.width
         height: bind bluebirdText.boundsInLocal.height
         onMouseReleased: function(e:MouseEvent) {
-            Main.bs.showDocument(new
java.net.URL("http://www.productivedreams.com/";))
+           
BareBonesBrowserLaunch.openURL("http://www.productivedreams.com/";)
         }
     }
 
@@ -297,7 +297,7 @@
         width: bind bluebirdText.boundsInLocal.width
         height: bind bluebirdText.boundsInLocal.height
         onMouseReleased: function(e:MouseEvent) {
-            Main.bs.showDocument(new
java.net.URL("http://www.inetsoftware.de/";));
+           
BareBonesBrowserLaunch.openURL("http://www.inetsoftware.de/";);
         }
     }
 
Index: twitterfx/src/twitterfx/panels/SendTweetPanel.fx
===================================================================
--- twitterfx/src/twitterfx/panels/SendTweetPanel.fx    (revision 30)
+++ twitterfx/src/twitterfx/panels/SendTweetPanel.fx    (revision 31)
@@ -23,14 +23,10 @@
 
 package twitterfx.panels;
 
-import java.awt.KeyboardFocusManager;
 import java.io.File;
-import java.util.List;
-import javafx.animation.Interpolator;
-import javafx.animation.Timeline;
-import javafx.lang.FX;
 import javafx.scene.Cursor;
 import javafx.scene.CustomNode;
+import javafx.scene.effect.DropShadow;
 import javafx.scene.Group;
 import javafx.scene.layout.HBox;
 import javafx.scene.Node;
@@ -41,12 +37,11 @@
 import javafx.scene.text.Font;
 import javafx.scene.text.Text;
 import javafx.scene.text.TextOrigin;
-import javax.jnlp.FileContents;
 import javax.swing.JFileChooser;
 import twitterfx.components.TinyButton;
 import twitterfx.components.TweetTextComponent;
-import twitterfx.components.URLEntryDialog;
 import twitterfx.Main;
+import twitterfx.panels.SendTweetPanel.OpenFileFilter;
 import twitterfx.twitpic.TwitPicAsync;
 import twitterfx.twitpic.TwitPicData;
 
@@ -60,31 +55,14 @@
     var fileChooser:JFileChooser;
     var strokeCount:Integer = bind tweetBox.length;
     var buttons:Group;
+    def tweetPanelWidth: Integer = 350;
 
-
-    var timeline:Timeline =  Timeline {
-        rate: -1.0
-        //   autoReverse: true
-        keyFrames: [
-             at (0s) {
-            animationY => 0.0 tween Interpolator.LINEAR;
-                    },
-                    at (0.25s) {
-            animationY => -85.0 tween Interpolator.LINEAR;
-                    }
-        ]
-            }
-       
-    var urlEntryDialog: URLEntryDialog =  URLEntryDialog{
-        translateY: -50;
-        visible: false;
-    };
-
+  
     
     public var tweetBox:TweetTextComponent = TweetTextComponent{
        
         translateY: 5;
-        width: bind (scene.width - 120)
+        width: bind (tweetPanelWidth - 120)
     };
 
     var spellCheck:Text = Text {
@@ -102,7 +80,7 @@
 
     var countText:Text =
     Text {
-        translateX: bind (scene.width - (countText.layoutBounds.width
+ 40))
+        translateX: bind (tweetPanelWidth -
(countText.layoutBounds.width + 40))
         translateY: 70
         textOrigin: TextOrigin.BOTTOM
         //  textAlignment: TextAlignment.RIGHT
@@ -116,13 +94,26 @@
             if (tweetBox.tooLong) Color.PINK else Color.LIGHTGRAY
     }
 
+  var close: TinyButton = TinyButton {
+      //  disabled: bind if (order == DESCENDING) true else false
+        //  text: "newest first"
+        //  size: 10
+        translateY: 5
+        translateX: bind tweetPanel.layoutBounds.width -
(close.layoutBounds.width)
+        icon: "grey/Cancel"
+        label: "Close panel"
+        action: function() {
+            toggleTweetPanel();
+        }
+    }
+
     
     var tweetPanel:Group = Group {
         translateY: 30
         content: [
             Rectangle {
-                translateX:2
-                width: bind (scene.width - 15)
+                translateX:7
+                width: bind (tweetPanelWidth - 15)
                 height: 70
                 fill: LinearGradient {
                     startX: 0.0,
@@ -142,7 +133,7 @@
                 arcWidth: 15
             }, tweetBox, countText,spellCheck,
             buttons = Group{
-                translateX: bind (scene.width -
(buttons.layoutBounds.width + 20))
+                translateX: bind (tweetPanelWidth -
(buttons.layoutBounds.width + 20))
                 translateY: 5
                 content: [
                     TinyButton {
@@ -152,7 +143,7 @@
                         icon: "grey/Link"
                         label: "Insert link using is.gd"
                         action: function() {
-                            urlEntryDialog.visible = true;
+                            Main.urlEntryDialog.showWindow();
                            
                          
 
@@ -210,21 +201,13 @@
 
 
     public function showTweetPanel():Void{
-        if (not isRevealed)
-        {
-            timeline.rate =  1.0;
-            timeline.play();
-        }
+       visible = true;
         tweetBox.requestFocus();
         isRevealed = true;
     }
 
     public function hideTweetPanel():Void{
-        if (isRevealed)
-        {
-            timeline.rate =  -1.0;
-            timeline.play();
-        }
+       visible = false;
         isRevealed = false;
        
     }
@@ -238,48 +221,20 @@
 
 
 
-    var minimizePanel: Group =
-    HBox {
-        cursor: Cursor.HAND;
-        //    translateX: 5
-        content: [
-        TinyButton {
-            translateX: 2
-            translateY: 5
-            icon: "grey/Write"
-            label: "Reveal the tweet entry box"
-            action: function() {
+   
 
-                toggleTweetPanel();
-                    
-            }
-        }, TinyButton {
-            translateX: 2
-            translateY: 5
-            icon: bind if (Main.twitterConfig.fullWidth) "red/Full
Size" else "grey/Full Size"
-            label: "Reveal the tweet entry box"
-            action: function() {
-
-               Main.twitterConfig.fullWidth = not
Main.twitterConfig.fullWidth;
-               Main.sideScrolling.position = 0.0;
-            }
-        }
-              ]

-    }
-
     var mainPanel:Group =
     Group {
 
         content: [
             Rectangle {
-               
+                effect: DropShadow {}
                 styleClass: "bottomMenuBar"
                 height: 150
-                width: bind scene.width },
+                width: bind tweetPanelWidth },
             Group {
                
-                content: [minimizePanel, tweetPanel
+                content: [tweetPanel,close
                     
                 ] } ] }
     
@@ -291,8 +246,9 @@
         return HBox {
            
             blocksMouse:true;
-            translateY: bind this.animationY;
-            content: [mainPanel,urlEntryDialog]
+            translateY: bind (scene.height -
mainPanel.layoutBounds.height) / 2;
+            translateX: bind (scene.width -
mainPanel.layoutBounds.width) / 2;
+            content: [mainPanel]
 
         }
 
Index: twitterfx/src/twitterfx/panels/TopControlPanel.fx
===================================================================
--- twitterfx/src/twitterfx/panels/TopControlPanel.fx   (revision 30)
+++ twitterfx/src/twitterfx/panels/TopControlPanel.fx   (revision 31)
@@ -23,13 +23,13 @@
 
 package twitterfx.panels;
 
-import java.net.URL;
 import javafx.scene.CustomNode;
 import javafx.scene.Group;
 import javafx.scene.layout.HBox;
 import javafx.scene.Node;
 import javafx.scene.paint.Color;
 import javafx.scene.shape.Rectangle;
+import twitterfx.browser.BareBonesBrowserLaunch;
 import twitterfx.components.TinyButton;
 import twitterfx.Main;
 import twitterfx.twitter.TwitterAPI;
@@ -155,7 +155,7 @@
         label: "Search"
         action: function () {
 
-            Main.bs.showDocument(new
URL("http://search.twitter.com/";));
+           
BareBonesBrowserLaunch.openURL("http://search.twitter.com/";);
 
         }
     }
@@ -201,6 +201,32 @@
         visible: bind Main.isLoading 
     }
 
+    var fixVariableWidth: TinyButton = TinyButton {
+            translateY: 5
+            translateX: bind (scene.width - 75)
+           
+            icon: bind if (Main.twitterConfig.fullWidth) "red/Full
Size" else "grey/Full Size"
+            label: "Toggle fix/variable width tweet columsn"
+            action: function() {
+
+               Main.twitterConfig.fullWidth = not
Main.twitterConfig.fullWidth;
+               Main.twitterConfig.save();
+               Main.sideScrolling.position = 0.0;
+            }
+        }
+
+    var tweetPanel: TinyButton = TinyButton {
+            width: 32
+            height: 32
+            icon: "grey/Write"
+            label: "Reveal the tweet entry box"
+            action: function() {
+
+                Main.sendTweetPanel.toggleTweetPanel();
+
+            }
+        }
+
     var settingsIcon: TinyButton = TinyButton {
         translateX: bind (scene.width - 25)
         translateY: 5
@@ -218,7 +244,7 @@
         fill: Color.web("#3d3d3d")
             ,
         width: bind scene.width
-        height: 30
+        height: 45
     }
 
    
@@ -232,8 +258,8 @@
                     translateX: 3
                     translateY: 5
                     spacing: 5
-                    content: [home,replies,direct,favs, everyone,
links, following, followers,search,banWorld,groupButton]
-            },errorIcon,loadingIcon,settingsIcon ]
+                    content: [tweetPanel,home,replies,direct,favs,
everyone, links, following, followers,search,banWorld,groupButton]
+            },errorIcon,fixVariableWidth,loadingIcon,settingsIcon ]
         }
     }
 }
Index: twitterfx/src/twitterfx/panels/TwitterConfig.fx
===================================================================
--- twitterfx/src/twitterfx/panels/TwitterConfig.fx     (revision 30)
+++ twitterfx/src/twitterfx/panels/TwitterConfig.fx     (revision 31)
@@ -24,13 +24,12 @@
 package twitterfx.panels;
 
 import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.IOException;
 import java.lang.NumberFormatException;
 import java.util.Properties;
 import javafx.scene.image.Image;
-import twitterfx.Main;
-import twitterfx.twitter.TwitterAPI;
 import twitterfx.twitter.User;
 
 /**
@@ -62,24 +61,27 @@
      //   TwitterAPI.getAllFriends();
     }
     public var fullWidth:Boolean = false;
-
+    public var banListTemp:String;
     var p: Properties = new Properties();
     
     init {
-        var d =
javax.swing.filechooser.FileSystemView.getFileSystemView().getDefaultDi
rectory();
-        try {
+         try {
             var inputStream: InputStream;
             try {
-                inputStream = Main.ps.get(new
java.net.URL("{Main.bs.getCodeBase()}twitterfx.properties")).getInputSt
ream();
+                inputStream = new
java.io.FileInputStream("{java.lang.System.getProperty("user.home")}/tw
itterfx/twitterfx.properties");
             } catch (f:FileNotFoundException) {
-                Main.ps.create(new
java.net.URL("{Main.bs.getCodeBase()}twitterfx.properties"),1000);
-                inputStream = Main.ps.get(new
java.net.URL("{Main.bs.getCodeBase()}twitterfx.properties")).getInputSt
ream();
+               // Main.ps.create(new
java.net.URL("{Main.bs.getCodeBase()}twitterfx.properties"),1000);
+               // inputStream = Main.ps.get(new
java.net.URL("{Main.bs.getCodeBase()}twitterfx.properties")).getInputSt
ream();
             }
-            p.load(inputStream);
+            
+            if (inputStream != null)
+                p.load(inputStream);
+                
             username = p.getProperty("username");
             password = p.getProperty("password");
-
-            var banListTemp: String;
+            banListTemp = new
java.lang.String(p.getProperty("banlist",""));
+            fullWidth = new
java.lang.Boolean(p.getProperty("fullWidth","false"));
+           
             try {
                 refreshFrequency =
java.lang.Integer.parseInt(p.getProperty("refreshFrequency","300000"));
                 preferredDisplayName =
java.lang.Integer.parseInt(p.getProperty("preferredDisplayName","0"));
@@ -88,8 +90,7 @@
                 startY = new
java.lang.Float(p.getProperty("startY","200"));
                 startWidth = new
java.lang.Float(p.getProperty("startWidth","420"));
                 startHeight = new
java.lang.Float(p.getProperty("startHeight","600"));
-                banListTemp = new
java.lang.String(p.getProperty("banlist",""));
-                fullWidth = new
java.lang.Boolean(p.getProperty("fullWidth","false"));
+
             } catch (e:NumberFormatException) {
                 e.printStackTrace();
             }
@@ -133,7 +134,7 @@
         if (backgroundImage != null and backgroundImage.url != null)
         {  p.setProperty("background",backgroundImage.url);
         }
-        p.save(Main.ps.get(new
java.net.URL("{Main.bs.getCodeBase()}twitterfx.properties")).getOutputS
tream(true),"Don't Edit");
+        p.save(new
FileOutputStream("{java.lang.System.getProperty("user.home")}/twitterfx
/twitterfx.properties"),"Don't Edit");
         println(username);
         println(p.getProperty("username"));
 
Index: twitterfx/src/twitterfx/panels/CurrentUserPanel.fx
===================================================================
--- twitterfx/src/twitterfx/panels/CurrentUserPanel.fx  (revision 30)
+++ twitterfx/src/twitterfx/panels/CurrentUserPanel.fx  (revision 31)
@@ -10,7 +10,6 @@
 import javafx.scene.Cursor;
 import javafx.scene.CustomNode;
 import javafx.scene.Group;
-import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.HBox;
@@ -21,9 +20,9 @@
 import javafx.scene.text.Font;
 import javafx.scene.text.Text;
 import javafx.scene.text.TextOrigin;
+import twitterfx.browser.BareBonesBrowserLaunch;
 import twitterfx.components.CachedImageLoader;
 import twitterfx.components.StatusNode;
-import twitterfx.components.TextButton;
 import twitterfx.components.TinyButton;
 import twitterfx.Main;
 import twitterfx.panels.ScrollPanel;
@@ -157,7 +156,7 @@
                 } ]
                 cursor: Cursor.HAND
                 onMouseReleased: function( e: MouseEvent ):Void {
-                    Main.bs.showDocument(new
java.net.URL("http://twitter.com/{currentUser.screenName}";));
+                   
BareBonesBrowserLaunch.openURL("http://twitter.com/{currentUser.screenN
ame}");
                 }
             },
             HBox {
@@ -250,7 +249,7 @@
                 } ]
                 cursor: Cursor.HAND
                 onMouseReleased: function( e: MouseEvent ):Void {
-                    Main.bs.showDocument(new
java.net.URL("http://maps.google.com/?q={URLEncoder.encode(currentUser.
location,"UTF-8")}"));
+                   
BareBonesBrowserLaunch.openURL("http://maps.google.com/?q={URLEncoder.e
ncode(currentUser.location,"UTF-8")}");
                 }
             }
                         ,
@@ -307,7 +306,7 @@
                 } ]
                 cursor: Cursor.HAND
                 onMouseReleased: function( e: MouseEvent ):Void {
-                    Main.bs.showDocument(new
java.net.URL(currentUser.url));
+                    BareBonesBrowserLaunch.openURL(currentUser.url);
                 }
             },
             Group { content: [
Index: twitterfx/src/twitterfx/JKeyboardHandler.fx
===================================================================
--- twitterfx/src/twitterfx/JKeyboardHandler.fx (revision 0)
+++ twitterfx/src/twitterfx/JKeyboardHandler.fx (revision 31)
@@ -0,0 +1,24 @@
+package twitterfx;
+
+public class JKeyboardHandler extends KeyboardHandler {
+
+    override function toggleTweetBox(){
+       Main.sendTweetPanel.toggleTweetPanel();
+    }
+
+    override function toggleConfigPanel(){
+        Main.homePanel.togglePanel();
+    }
+
+    override function toggleBanWords(){
+        Main.banWords.togglePanel();
+    }
+
+    override function refreshNetwork(){
+        Main.refreshTimeline.playFromStart();
+    }
+
+
+
+
+}
Index: twitterfx/src/twitterfx/components/FriendNode.fx
===================================================================
--- twitterfx/src/twitterfx/components/FriendNode.fx    (revision 30)
+++ twitterfx/src/twitterfx/components/FriendNode.fx    (revision 31)
@@ -23,22 +23,22 @@
 
 package twitterfx.components;
 
+import twitterfx.Main;
 import javafx.scene.Cursor;
 import javafx.scene.CustomNode;
+import javafx.scene.effect.DropShadow;
+import javafx.scene.effect.InnerShadow;
 import javafx.scene.Group;
 import javafx.scene.image.ImageView;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.Node;
 import javafx.scene.paint.Color;
-import javafx.scene.shape.Circle;
 import javafx.scene.shape.Rectangle;
 import javafx.scene.text.Font;
 import javafx.scene.text.Text;
 import javafx.scene.text.TextOrigin;
 import twitterfx.components.CachedImageLoader;
-import twitterfx.Main;
 import twitterfx.twitter.User;
-import twitterfx.components.DraggableImageView;
 
 /**
  * @author steven
@@ -63,25 +63,12 @@
                 width: bind width
             }
             image: bind
CachedImageLoader.cachedImageLoader(user.profileImageUrl,true);
-
-
+          
         };

 
-        var badgeText: Text = Text {
-            textOrigin: TextOrigin.BOTTOM
-            impl_layoutX: bind imageView.layoutBounds.maxX - 10
-            impl_layoutY: bind imageView.layoutBounds.minY + 10
 
-            fill: Color.WHITE
-            stroke: Color.WHITE
-            strokeWidth: 0.0
-            font: Font { size: 10
-            }
-            content: bind user.unreadCount.toString()
-        }
 
-
-
         var friendNode: Group = Group {
             translateX: bind
                 if (colCount > 0 and position > 0) (
Index: twitterfx/src/twitterfx/components/FilterTextFieldComponent.fx
===================================================================
--- twitterfx/src/twitterfx/components/FilterTextFieldComponent.fx     
(revision 30)
+++ twitterfx/src/twitterfx/components/FilterTextFieldComponent.fx     
(revision 31)
@@ -23,18 +23,14 @@
 
 package twitterfx.components;
 
-import com.inet.jortho.SpellChecker;
 import java.awt.event.KeyEvent;
 import java.awt.event.KeyListener;
 import java.awt.Font;
-import java.lang.Exception;
 import javafx.ext.swing.SwingComponent;
 import javax.swing.JComponent;
-import javax.swing.JTextArea;
 import javax.swing.JTextField;
-import twitterfx.Main;
-import twitterfx.twitter.TwitterAPI;
 import twitterfx.util.ClipboardServices;
+import javax.swing.BorderFactory;
 
 /**
  * @author steven
@@ -44,7 +40,7 @@
 public class FilterTextFieldComponent extends SwingComponent{
 
 
-
+    public var fontSize: Number = 10;
     public var filterText: String on replace {
         setText(filterText)
     }
@@ -64,19 +60,22 @@
 
 
     public override function createJComponent():JComponent{
-        var f: Font = new java.awt.Font("Lucida Grande",Font.PLAIN,
8);
+        var f: Font = new java.awt.Font("Lucida Grande",Font.PLAIN,
12);
 
         myComponent = new JTextField(10);
         myComponent.setOpaque(false);
         myComponent.setFont(f);
+        myComponent.setBorder(BorderFactory.createEmptyBorder());
         myComponent.addKeyListener
 
+
         ( KeyListener{
                 public override function
             keyPressed(keyEvent:KeyEvent) {
                     if (keyEvent.VK_PASTE == keyEvent.getKeyCode())
                 {
-                       
myComponent.replaceSelection(ClipboardServices.getFromClipboard());
+                        var cs:ClipboardServices = new
ClipboardServices();
+                       
myComponent.replaceSelection(cs.getFromClipboard());
 
 
                     }
Index: twitterfx/src/twitterfx/components/HyperText.fx
===================================================================
--- twitterfx/src/twitterfx/components/HyperText.fx     (revision 30)
+++ twitterfx/src/twitterfx/components/HyperText.fx     (revision 31)
@@ -6,7 +6,6 @@
 
 package twitterfx.components;
 
-import java.net.URL;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import javafx.scene.Cursor;
@@ -16,12 +15,9 @@
 import javafx.scene.Node;
 import javafx.scene.paint.Color;
 import javafx.scene.paint.Paint;
-import javafx.scene.shape.Rectangle;
 import javafx.scene.text.Font;
 import javafx.scene.text.Text;
-import twitterfx.Main;
-import javax.swing.JTextPane;
-import twitterfx.components.TextPanel;
+import twitterfx.browser.BareBonesBrowserLaunch;
 
     /**
      * @author steven
@@ -90,8 +86,7 @@
             while
                 (
                 matcher.find()) {
-                    Main.bs.showDocument(new URL
-                        (matcher.group()));
+                    BareBonesBrowserLaunch.openURL(matcher.group());
                     println("Found link:{matcher.group()}");
                 }
 
Index: twitterfx/src/twitterfx/components/FilterTextBox.fx
===================================================================
--- twitterfx/src/twitterfx/components/FilterTextBox.fx (revision 30)
+++ twitterfx/src/twitterfx/components/FilterTextBox.fx (revision 31)
@@ -22,7 +22,7 @@
 
 public class FilterTextBox extends CustomNode {
 
-    var tweetBox: FilterTextFieldComponent = FilterTextFieldComponent
{  }
+    var tweetBox: FilterTextFieldComponent = FilterTextFieldComponent
{translateX: 4 translateY: 3 fontSize: 12  }
     public var searchAction: function():Void;
 
     public var text:String = bind tweetBox.filterText with inverse on
replace {
@@ -56,8 +56,11 @@
             }, tweetBox,
             
                     TinyButton {
+                        translateY: 4
                         translateX: tweetBox.layoutBounds.width
                         blocksMouse:false
+                        height: 12
+                        width: 12
                         fill: Color.WHITE
                         icon: "grey/Cancel"
                         label: "Clear"
Index: twitterfx/src/twitterfx/components/URLEntryDialog.fx
===================================================================
--- twitterfx/src/twitterfx/components/URLEntryDialog.fx       
(revision 30)
+++ twitterfx/src/twitterfx/components/URLEntryDialog.fx       
(revision 31)
@@ -43,74 +43,94 @@
  */
 
 public class URLEntryDialog extends CustomNode {
-    override public var visible on replace {
-        //TODO this setting things to blank doesn't work.
-        urlText.text = "";
-        //TODO only paste when things are visible
-        urlText.paste();
-    }
 
 
-    var outerFrame:Rectangle = Rectangle {
-        width: bind (Main.panelWidth - 15) 
-        height: 100
-        arcHeight: 15
-        arcWidth: 15
-        fill: Color.web("#3d3d3d")
-        }
 
     var urlText:URLTextField = URLTextField {
-        translateY: 10
+        
         toolTipText: "Clipboard will automatically be pasted"
     }
 
     var okButton:SwingButton = SwingButton {
         text: "Insert";
-        translateX: 10
+     
         action: function () {
+     
             var rtd:RemoteTextDocument = RemoteTextDocument {
-                url: bind
"http://is.gd/api.php?longurl={URLEncoder.encode(urlText.text,
"UTF-8")}"
+                url: bind
"http://is.gd/api.php?longurl={URLEncoder.encode(urlText.text,
"UTF-8")}";
                 onDone: function(success:Boolean):Void {
                     if(success) {
                         var response = rtd.document;
                         Main.sendTweetPanel.showTweetPanel();
                        
Main.sendTweetPanel.tweetBox.addSuffix(response);
+                        closeWindow();  //Now
 
                     }else {
                         System.out.println("failure =
{rtd.failureText}");
+                        Main.isErrorPending = true;
+                        Main.networkErrorText = "I'm sorry, I could
not contact shortening service...";
+                        closeWindow();  //Now
                     }
                     rtd = null;
                 }
                             };
-            visible = false;  //Now run and hide the window
+         
               
         }
     }
 
     var cancelButton:SwingButton = SwingButton {
         text: "Cancel";
-        translateX: 60;
+  
         action: function() {
-            visible = false;
+            closeWindow();
         }
     }
 
-    var buttonGroup:HBox = HBox {
-        translateY: 40
+   var buttonGroup:HBox = HBox {
+
         content: [okButton, cancelButton]
     }
 
-    override protected function create():Node {
+   var content:HBox = HBox {
+                    content: [urlText, buttonGroup]
+        }
 
-        return Group {
-     
+
+    var outerFrame:Rectangle = Rectangle {
+            width: bind content.layoutBounds.width + 10
+            height: bind content.layoutBounds.height + 10
+            arcHeight: 15
+            arcWidth: 15
+            fill: Color.web("#3d3d3d")
+        }
+
+    var bob:Group = Group {
+            translateX: bind (scene.width -
outerFrame.layoutBounds.width) / 2
+            translateY: bind (scene.height -
outerFrame.layoutBounds.height) / 2
             visible: bind visible
-            translateY: bind translateY
-            content: [outerFrame, Group {
-                    translateY: 20
-                    translateX: 10
-                    content: [urlText, buttonGroup]
-        }] }
+           
+            content: [outerFrame,content ] }
 
+    
+
+   public function closeWindow ()
+    {
+        urlText.text = "";
+        visible = false;
     }
+
+   public function showWindow ()
+    {
+       // urlText.text = "";
+        visible = true;
+    }
+
+
+
+    override protected function create():Node {
+
+        return bob;
+
+    }
 }
Index: twitterfx/src/twitterfx/components/URLTextField.fx
===================================================================
--- twitterfx/src/twitterfx/components/URLTextField.fx  (revision 30)
+++ twitterfx/src/twitterfx/components/URLTextField.fx  (revision 31)
@@ -75,8 +75,8 @@
             public override function
             keyPressed(keyEvent:KeyEvent) {
                 if (keyEvent.VK_PASTE == keyEvent.getKeyCode())
-                {
-                   
myComponent.replaceSelection(ClipboardServices.getFromClipboard());
+                { var cs:ClipboardServices = new ClipboardServices();
+                   
myComponent.replaceSelection(cs.getFromClipboard());
                   
                 }
             }
Index: twitterfx/src/twitterfx/components/TextArea.fx
===================================================================
--- twitterfx/src/twitterfx/components/TextArea.fx      (revision 30)
+++ twitterfx/src/twitterfx/components/TextArea.fx      (revision 31)
@@ -75,7 +75,8 @@
             keyPressed(keyEvent:KeyEvent) {
                     if (keyEvent.VK_PASTE == keyEvent.getKeyCode())
                 {
-                       
myComponent.replaceSelection(ClipboardServices.getFromClipboard());
+                     var cs:ClipboardServices = new
ClipboardServices();
+                       
myComponent.replaceSelection(cs.getFromClipboard());
                         length =
myComponent.getDocument().getLength();
 
                     }
Index: twitterfx/src/twitterfx/components/TweetTextComponent.fx
===================================================================
--- twitterfx/src/twitterfx/components/TweetTextComponent.fx   
(revision 30)
+++ twitterfx/src/twitterfx/components/TweetTextComponent.fx   
(revision 31)
@@ -33,8 +33,6 @@
 import javafx.ext.swing.SwingComponent;
 import javax.swing.JComponent;
 import javax.swing.JTextArea;
-import org.jdesktop.swingx.autocomplete.*;
-
 import twitterfx.Main;
 import twitterfx.twitter.TwitterAPI;
 import twitterfx.util.ClipboardServices;
@@ -94,7 +92,8 @@
 
                     if (keyEvent.VK_PASTE == keyEvent.getKeyCode())
                 {
-                       
myComponent.replaceSelection(ClipboardServices.getFromClipboard());
+                     var cs:ClipboardServices = new
ClipboardServices();
+                       
myComponent.replaceSelection(cs.getFromClipboard());
                         length =
myComponent.getDocument().getLength();
 
                     }
@@ -114,16 +113,6 @@
 
                     }
 
-                    if (keyEvent.isControlDown() and (keyEvent.VK_T ==
keyEvent.getKeyCode()))
-                    {
-                        Main.sendTweetPanel.toggleTweetPanel(); 
//Dude, why?  I shouldn't have to put this here.
-
-
-                    } else if (keyEvent.isControlDown() and
(keyEvent.VK_P == keyEvent.getKeyCode())){
-                        Main.homePanel.togglePanel();
-                  
-                    }
-
                 }
 
                 public override function
@@ -161,7 +150,7 @@
 
            // AutoCompleteDecorator.decorate(myComponent, friendList,
false);
 
-            SpellChecker.registerDictionaries( Main.bs.getCodeBase(),
"en", "en" );
+            SpellChecker.registerDictionaries(
this.getClass().getProtectionDomain().getCodeSource().getLocation(),
"en", "en" );
             SpellChecker.register( myComponent, false, true, true );
             
         } catch (e:Exception) {
Index: twitterfx/src/twitterfx/components/ToolBox.fx
===================================================================
--- twitterfx/src/twitterfx/components/ToolBox.fx       (revision 30)
+++ twitterfx/src/twitterfx/components/ToolBox.fx       (revision 31)
@@ -79,7 +79,8 @@
         label: "Copy permalink to clipboard"
         icon: "grey/Link"
         action: function() {
-           
ClipboardServices.pasteToClipboard("http://twitter.com/{status.user.scr
eenName}/status/{status.id}");
+             var cs:ClipboardServices = new ClipboardServices();
+           
cs.pasteToClipboard("http://twitter.com/{status.user.screenName}/status
/{status.id}");
         }
 }
 
Index: twitterfx/src/twitterfx/components/StatusNode.fx
===================================================================
--- twitterfx/src/twitterfx/components/StatusNode.fx    (revision 30)
+++ twitterfx/src/twitterfx/components/StatusNode.fx    (revision 31)
@@ -36,6 +36,7 @@
 import javafx.scene.text.Text;
 import org.memefx.html.TextAttributes;
 import org.memefx.html.TextHTML;
+import twitterfx.browser.BareBonesBrowserLaunch;
 import twitterfx.components.CycleText;
 import twitterfx.components.FriendNode;
 import twitterfx.components.PopupMenu;
@@ -132,7 +133,7 @@
         else if (link.startsWith("#"))
         {
 
-           Main.bs.showDocument(new
URL("http://search.twitter.com/search?q={URLEncoder.encode(link,
"UTF-8")}"));
+          
BareBonesBrowserLaunch.openURL("http://search.twitter.com/search?q={URL
Encoder.encode(link, "UTF-8")}");
            
         }
        else if (link.startsWith("http://twitpic.com/";))
@@ -142,7 +143,7 @@
             //probably should be a method call huh??  Idiot.
         }
         else if (link.startsWith("http"))
-        { Main.bs.showDocument(new URL(link))}
+        { BareBonesBrowserLaunch.openURL(link)}
 }
 
 
Index: twitterfx/src/twitterfx/components/FilterTextField.fx
===================================================================
--- twitterfx/src/twitterfx/components/FilterTextField.fx      
(revision 30)
+++ twitterfx/src/twitterfx/components/FilterTextField.fx      
(revision 31)
@@ -75,7 +75,8 @@
             keyPressed(keyEvent:KeyEvent) {
                     if (keyEvent.VK_PASTE == keyEvent.getKeyCode())
                 {
-                       
myComponent.replaceSelection(ClipboardServices.getFromClipboard());
+                        var cs:ClipboardServices = new
ClipboardServices();
+                       
myComponent.replaceSelection(cs.getFromClipboard());
                       
 
                     }
Index: twitterfx/src/twitterfx/twitterfx.css
===================================================================
--- twitterfx/src/twitterfx/twitterfx.css       (revision 30)
+++ twitterfx/src/twitterfx/twitterfx.css       (revision 31)
@@ -28,9 +28,11 @@
 }
 
 .bottomMenuBar {
+    stroke: #232323;
+    strokeWidth: 2.0;
     fill: #3d3d3d;
-    arcHeight: 5;
-    arcWidth: 5;
+    arcHeight: 15;
+    arcWidth: 15;
 }
 
 .scrollBar {
Index: twitterfx/src/twitterfx/Main.fx
===================================================================
--- twitterfx/src/twitterfx/Main.fx     (revision 30)
+++ twitterfx/src/twitterfx/Main.fx     (revision 31)
@@ -44,6 +44,7 @@
 import twitterfx.components.MemberManagerDialog;
 import twitterfx.components.NetworkErrorMessage;
 import twitterfx.components.ToolTip;
+import twitterfx.components.URLEntryDialog;
 import twitterfx.components.ZoomImage;
[trimmed for length]


[subversion:31] 0.30L - different style of tweet entry box (unfinished)

sherod 04/30/2009
  • Mysql
  • Glassfish
  • Jruby
  • Rails
  • Nblogo
Terms of Use; Privacy Policy;
© 2010, Oracle Corporation and/or its affiliates
(revision 20120518.3c65429)
 
 
Close
loading
Please Confirm
Close