Added conversation view

This commit is contained in:
Jeena Paradies 2012-11-09 21:16:52 +01:00
parent 6c05512285
commit fa2bda0394
13 changed files with 474 additions and 48 deletions

View file

@ -19,6 +19,8 @@
IBOutlet NSWindow *timelineViewWindow;
IBOutlet WebView *mentionsView;
IBOutlet NSWindow *mentionsViewWindow;
IBOutlet WebView *conversationView;
IBOutlet NSWindow *conversationViewWindow;
NSWindow *loginViewWindow;
NSProgressIndicator *loginActivityIndicator;
IBOutlet NSMenuItem *globalHotkeyMenuItem;
@ -32,6 +34,8 @@
@property (retain, nonatomic) IBOutlet NSWindow *timelineViewWindow;
@property (retain, nonatomic) IBOutlet WebView *mentionsView;
@property (retain, nonatomic) IBOutlet NSWindow *mentionsViewWindow;
@property (retain, nonatomic) IBOutlet WebView *conversationView;
@property (retain, nonatomic) IBOutlet NSWindow *conversationViewWindow;
@property (assign) IBOutlet NSWindow *loginViewWindow;
@property (assign) IBOutlet NSProgressIndicator *loginActivityIndicator;
@property (retain, nonatomic) IBOutlet NSMenuItem *globalHotkeyMenuItem;
@ -58,6 +62,8 @@
- (IBAction)login:(id)sender;
- (IBAction)logout:(id)sender;
- (IBAction)showConversationForPostId:(NSString *)postId andEntity:(NSString *)entity;
OSStatus handler(EventHandlerCallRef nextHandler, EventRef theEvent, void* userData);

View file

@ -15,7 +15,8 @@
@synthesize loginViewWindow;
@synthesize loginActivityIndicator;
@synthesize timelineView, timelineViewWindow, mentionsView, mentionsViewWindow, globalHotkeyMenuItem, viewDelegate;
@synthesize timelineView, timelineViewWindow, mentionsView, mentionsViewWindow, conversationView, conversationViewWindow;
@synthesize globalHotkeyMenuItem, viewDelegate;
@synthesize logoLayer;
@synthesize oauthView, accessToken;
@ -53,6 +54,10 @@
accessToken = [[AccessToken alloc] init];
//[accessToken setString:nil forKey:@"user_access_token"];
if (![accessToken stringForKey:@"version-0.2.0-new-login"]) {
[self logout:self];
[accessToken setString:@"yes" forKey:@"version-0.2.0-new-login"];
}
if (![accessToken stringForKey:@"user_access_token"]) {
[timelineViewWindow performClose:self];
@ -103,6 +108,14 @@
[mentionsView setPolicyDelegate:viewDelegate];
[mentionsView setUIDelegate:viewDelegate];
[[mentionsView windowScriptObject] setValue:self forKey:@"controller"];
viewDelegate.conversationView = conversationView;
[[conversationView mainFrame] loadHTMLString:index_string baseURL:url];
[conversationView setFrameLoadDelegate:viewDelegate];
[conversationView setPolicyDelegate:viewDelegate];
[conversationView setUIDelegate:viewDelegate];
[[conversationView windowScriptObject] setValue:self forKey:@"controller"];
// FIXME: show timelineView after authentification
}
@ -305,6 +318,12 @@
[mentionsView stringByEvaluatingJavaScriptFromString:@"tentia_instance.getNewData(true)"];
}
- (IBAction)showConversationForPostId:(NSString *)postId andEntity:(NSString *)entity
{
NSString *js = [NSString stringWithFormat:@"tentia_instance.showStatus('%@', '%@');", postId, entity];
[conversationView stringByEvaluatingJavaScriptFromString:js];
[conversationViewWindow makeKeyAndOrderFront:self];
}
/* CARBON */

View file

@ -3,7 +3,7 @@
<data>
<int key="IBDocument.SystemTarget">1080</int>
<string key="IBDocument.SystemVersion">12C60</string>
<string key="IBDocument.InterfaceBuilderVersion">2843</string>
<string key="IBDocument.InterfaceBuilderVersion">2844</string>
<string key="IBDocument.AppKitVersion">1187.34</string>
<string key="IBDocument.HIToolboxVersion">625.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
@ -15,7 +15,7 @@
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>2843</string>
<string>2844</string>
<string>1810</string>
</object>
</object>
@ -920,7 +920,7 @@
<reference key="NSNextKeyView"/>
<string key="FrameName"/>
<string key="GroupName"/>
<object class="WebPreferences" key="Preferences">
<object class="WebPreferences" key="Preferences" id="1028823828">
<string key="Identifier">12</string>
<object class="NSMutableDictionary" key="Values">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -935,6 +935,66 @@
<string key="NSFrameSize">{376, 581}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="126069112"/>
</object>
<string key="NSScreenRect">{{0, 0}, {2560, 1418}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<string key="NSFrameAutosaveName">mentions</string>
<bool key="NSWindowIsRestorable">YES</bool>
</object>
<object class="NSWindowTemplate" id="522849916">
<int key="NSWindowStyleMask">15</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{1292, 328}, {376, 581}}</string>
<int key="NSWTFlags">1685586944</int>
<string key="NSWindowTitle">Conversation</string>
<string key="NSWindowClass">NSWindow</string>
<nil key="NSViewClass"/>
<nil key="NSUserInterfaceItemIdentifier"/>
<object class="NSView" key="NSWindowView" id="443388945">
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="WebView" id="461483829">
<reference key="NSNextResponder" ref="443388945"/>
<int key="NSvFlags">274</int>
<object class="NSMutableSet" key="NSDragTypes">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="set.sortedObjects">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>Apple HTML pasteboard type</string>
<string>Apple PDF pasteboard type</string>
<string>Apple PICT pasteboard type</string>
<string>Apple URL pasteboard type</string>
<string>Apple Web Archive pasteboard type</string>
<string>NSColor pasteboard type</string>
<string>NSFilenamesPboardType</string>
<string>NSStringPboardType</string>
<string>NeXT RTFD pasteboard type</string>
<string>NeXT Rich Text Format v1.0 pasteboard type</string>
<string>NeXT TIFF v4.0 pasteboard type</string>
<string>WebURLsWithTitlesPboardType</string>
<string>public.png</string>
<string>public.url</string>
<string>public.url-name</string>
</object>
</object>
<string key="NSFrameSize">{376, 581}</string>
<reference key="NSSuperview" ref="443388945"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="FrameName"/>
<string key="GroupName"/>
<reference key="Preferences" ref="1028823828"/>
<bool key="UseBackForwardList">NO</bool>
<bool key="AllowsUndo">YES</bool>
</object>
</object>
<string key="NSFrameSize">{376, 581}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="461483829"/>
</object>
<string key="NSScreenRect">{{0, 0}, {2560, 1418}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
@ -1561,6 +1621,22 @@
</object>
<int key="connectionID">622</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">conversationView</string>
<reference key="source" ref="408500656"/>
<reference key="destination" ref="461483829"/>
</object>
<int key="connectionID">632</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">conversationViewWindow</string>
<reference key="source" ref="408500656"/>
<reference key="destination" ref="522849916"/>
</object>
<int key="connectionID">633</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">makeKeyAndOrderFront:</string>
@ -1617,6 +1693,14 @@
</object>
<int key="connectionID">619</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="522849916"/>
<reference key="destination" ref="408500656"/>
</object>
<int key="connectionID">631</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@ -2366,6 +2450,30 @@
<reference key="object" ref="281587867"/>
<reference key="parent" ref="720053764"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">628</int>
<reference key="object" ref="522849916"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="443388945"/>
</object>
<reference key="parent" ref="0"/>
<string key="objectName">Mentions</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">629</int>
<reference key="object" ref="443388945"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="461483829"/>
</object>
<reference key="parent" ref="522849916"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">630</int>
<reference key="object" ref="461483829"/>
<reference key="parent" ref="443388945"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@ -2477,6 +2585,11 @@
<string>610.IBPluginDependency</string>
<string>613.IBPluginDependency</string>
<string>620.IBPluginDependency</string>
<string>628.IBPluginDependency</string>
<string>628.IBWindowTemplateEditedContentRect</string>
<string>628.NSWindowTemplate.visibleAtLaunch</string>
<string>629.IBPluginDependency</string>
<string>630.IBPluginDependency</string>
<string>72.IBPluginDependency</string>
<string>73.IBPluginDependency</string>
<string>79.IBPluginDependency</string>
@ -2593,6 +2706,11 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{344, 175}, {376, 581}}</string>
<boolean value="NO"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.WebKitIBPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -2613,7 +2731,7 @@
<reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
<int key="maxID">627</int>
<int key="maxID">633</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -2627,11 +2745,15 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>login:</string>
<string>logout:</string>
<string>openNewMessageWindow:</string>
<string>sendTweet:</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
@ -2640,6 +2762,8 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>login:</string>
<string>logout:</string>
<string>openNewMessageWindow:</string>
<string>sendTweet:</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -2651,12 +2775,22 @@
<string key="name">logout:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">openNewMessageWindow:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">sendTweet:</string>
<string key="candidateClassName">id</string>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>conversationView</string>
<string>conversationViewWindow</string>
<string>globalHotkeyMenuItem</string>
<string>loginActivityIndicator</string>
<string>loginViewWindow</string>
@ -2669,6 +2803,8 @@
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>WebView</string>
<string>NSWindow</string>
<string>NSMenuItem</string>
<string>NSProgressIndicator</string>
<string>NSWindow</string>
@ -2684,6 +2820,8 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>conversationView</string>
<string>conversationViewWindow</string>
<string>globalHotkeyMenuItem</string>
<string>loginActivityIndicator</string>
<string>loginViewWindow</string>
@ -2696,6 +2834,14 @@
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBToOneOutletInfo">
<string key="name">conversationView</string>
<string key="candidateClassName">WebView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">conversationViewWindow</string>
<string key="candidateClassName">NSWindow</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">globalHotkeyMenuItem</string>
<string key="candidateClassName">NSMenuItem</string>

View file

@ -13,11 +13,13 @@
@interface ViewDelegate : NSObject {
WebView *timelineView;
WebView *mentionsView;
WebView *conversationView;
WebView *oauthView;
}
@property (nonatomic, assign) WebView *timelineView;
@property (nonatomic, assign) WebView *mentionsView;
@property (nonatomic, assign) WebView *conversationView;
@property (nonatomic, assign) WebView *oauthView;
@end

View file

@ -11,7 +11,7 @@
@implementation ViewDelegate
@synthesize timelineView, mentionsView, oauthView;
@synthesize timelineView, mentionsView, conversationView, oauthView;
- (void)webView:(WebView *)sender addMessageToConsole:(NSDictionary *)message;{
@ -19,6 +19,7 @@
NSString *viewName = @"TimelineView";
if (sender == mentionsView) viewName = @"MentionsView";
if (sender == conversationView) viewName = @"ConversationView";
if (sender == oauthView) viewName = @"OauthView";
NSLog(@"js<%@>: %@:%@: %@",
@ -32,6 +33,7 @@
- (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {
NSString *viewName = @"TimelineView";
if (sender == mentionsView) viewName = @"MentionsView";
if (sender == conversationView) viewName = @"ConversationView";
if (sender == oauthView) viewName = @"OauthView";
NSLog(@"jsa<%@>: %@", viewName, message);
@ -47,7 +49,11 @@
if (sender == oauthView) {
[oauthView stringByEvaluatingJavaScriptFromString:@"function HostAppGo() { start('oauth') }"];
} else if(sender == conversationView) {
[conversationView stringByEvaluatingJavaScriptFromString:@"function HostAppGo() { start('conversation') }"];
} else {
NSString *action = @"timeline";