[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 |





