Nov 25, 2008 5:04 AM
SparkTabbedPane (Externalizing Tabs)
-
Like (0)
Hi Guys,
I've added a function to externalize tabs (drag and drop).
Here is the Patch.
Would be nice, if it will be tested by some users and reporting the bugs here.
Greetings
Niklas
EDIT: newest version added to attachment
HI,
i've optimized this patch and now there is an option to open externalized chatrooms directly...
Does noone want to test this patch ???
By the way, the History saving is also optimized in this patch. Now the history is saved on every received or sent message.
No history gets lost.
Greetings
Nick
EDIT: newest version added to attachment
I want!
I just didnt notice your message before. How can i try your patch? I already has a svn copy and i can compile it with NetBeans. How can i apply your patch to this source code?
As about history. Maybe it's worth splitting this functionalities? Personally i have never experienced history loss, but i know others are complaining often. And there is still two separate JIRA issues for tabs and history ![]()
Hi wroot,
before history saving wasn't advantageous...
When spark crashed or was closed unproperly and chatrooms were opened, the history got lost.
If you're using eclipse, patching is very easy. Just rightclick the spark project and then team ---> Apply Patch...
and i think the rest you'll understand on your own =)
Greetings
I've found the way to apply your patch in Netbeans (didnt have a luck to run this project in Eclipse..). So i'm testing it now. Externalizing (hm, should be a better name for that) is working. The great thing is to see actual presence of a user in a taskbar window. I was asking for that for a tabbed window http://www.igniterealtime.org/issues/browse/
SPARK-935 . Probably i could close that issue if your changes will be submitted to a Spark release.
Now issues and requests.
Maybe you can add an "Externalize" button to a tabbed chat window so one could easily move chat window to a stack and out of it.
When in a externalized mode chat window is not flashing in the taskbar upon message receiving. Also it jumps in the front, though i havent selected Bring to the front option.
As for a history. I see no difference. It still doesnt save the new message if i kill the Spark right after receiving it. On a normal exit it saves the history with the old source code and with your patch.
Maybe the history wasnt saving because i was killing the batch file which is launching the source build.
attaching the modified spark.jar which should be copied to a Spark installation dir (e.g. Windows - C:\Program Files\Spark\lib)
old patched spark.jar deleted, new one uploaded on the next page
I was thinking. What about making the option to externalize the tab always available (via a button on the chat window toolbar). And the same with the button letting to put a separate tab to a stack. And the option in the preferences will only turn on the separate windows for the new chats.
This is because maybe one prefer to use tabbed view, but occasionally wants one tab to be a separate one. To do this with the current approach one would need to change the preference twice.
Hi wroot,
You said that the option in the preferences should only turn on the separate windows for the new chats, but this is what it already does.
Detaching the tabs is always on and in detached tabs, there is always a green arrow, which reattaches the window to a tab stack.
Greetings
Niklas
n1ck wrote:
You said that the option in the preferences should only turn on the separate windows for the new chats, but this is what it already does.
Yes. I was just saying that this option should work as it is. But one shouldn't have to leave that turned on just to be able to detach and attach tabs. I mean i still want new chats to be opened in tabs and i only want some of them to detach. Then i will leave that option turned off. But there still should be "detach" and "attach" buttons visible and working in the chat window.
I don't really understand what you mean...
If the option is turned off and you open new chats, then they will open in the tab stack. Then, if you want to detach the tabs, you can detach them using the mouse (drag and drop). There is no need for a detach button...
Niklas, everything is fine, in essene we were talking about the same. I agree with the current approach. Drag and drop is a nice thing to have too. Though, maybe this won't be very intuitive for novice users. I dont think additional button would harm anyone
We can try releasing this feature this way (without the additional Detach button) and wait for a feedback from the users.
fgrsa, i can attach new compiled spark.jar a bit later (4-5 hours).
ahhh ok, wroot!
you thought it would be nice to have a detach button additionally...
hmm, if it is wanted, i would have nothing against it and i could easily add it.
I was applying this patch to the 2008.11.15 trunk. Issues i've found:
* Message popups are now appearing, but the detached window is not flashing in the taskbar. I think it should.
* Also clicking on such message popup doesnt do anything in detached mode. Normally it brings the chat window in to the front.
* Another issue is that if i already has some user in a tab and this user sends me a message, then an additional detached chat window is opened. I think it should check if a chat is already open with that contact and just flash the already open chat widnow with a tab. This is happening because the option "Open new chats in separate windows" is turned on. But if a tab is already open, this should count as an old chat.
Drag and drop is a bit tricky. There is no visual effect while you are dragging the tab. So it takes some time to get used to it. You can only drag the tab out of the tabs stack when dragging upwards or downwards. Dragging to the sides doesnt do anything. Not a big problem. But i think we should definitely have a Detach button. Because attaching is done only with a button. Functionality should be the same for the detaching. And drag and drop could be just as a bonus option ![]()
History is indeed saving even after killing the Spark process.
Rodrigo, i'm attaching the newest patched spark.jar, but this is still for the testing purposes. It still has some little issues.
And about the naming. Daniel in http://www.igniterealtime.org/issues/browse/
SPARK-893 is suggesting Detaching and reattaching. This sounds better, imho. Externalize button - "Detach this tab to a separate window", Internalize button - "Reattach this window to a tab stack". Option in the preferences - "New chats open in the separate windows". Just a suggestion.
Hi guys!
nice ideas, wroot! I'll do my best to fix the problems and add these features soon.
When it's done, i'll post the new patch.
Greetings
Niklas Schäfer
Hello,
I'm implement this solution, but don't have window alert or warning (flashes).How can enable this feature?
Tks
Rodrigo Marx
fgrsa wrote:
I'm implement this solution, but don't have window alert or warning (flashes).How can enable this feature?
You dont see alerts and flashing because message window jump in the front of other windows. When the chat window is in the front it doesnt show alerts and the window doesnt flash. This issue should be fixed in the next patch.
Niklas, great. Thanx for you work ![]()
Hi,
this is the newest SparkTabbedPane Patch.
Now the history should be saved after every message.
A Performance Problem when sending many emoticons is fixed and the Alerts should work now with the detached tabs.
Greetings
Edit: another bug was fixed and the attachment was updated =)
EDIT: sorry, code was optimized again!
Wroot,
You can create the file .jar and put here for download ?
Tks
Rodrigo Marx
Hi,
here is the newest version of the TabbedPane.
I've added the detach arrow and optimized the mouse dragging of the tabs. Now you can drag to the sides and the tabs will be detached...
Greetings
Tested. Yeap, it's now reacting to dragging to any side.
Nick. I have noticed one more issue. Though i'm not sure yet. But it seems that i sometimes dont get the message popups and a chat window is not flashing when i'm in a muc room. When i switch to the original spark.jar then it works fine. Also tab's title stays red even when i bring muc chat window to the front and this tab is the only one. Usually it should change to the normal state in that case. Now i have to click on the tab to make it back to normal.
Hi Niklas,
I am using the spark.jar provided by wroot (last attachment he posted), I think you are doing a great job!
I don't know if I'm 'beta testing' on old version, but below you can find a few remarks so far (I'm just using it for 10 minutes now):
Small issues:
- If you have the tabs configured to be at the bottom of the chat pane and the window is at the bottom of your screen and you drag one tab out than the newly created chat window is placed partly off-screen (probably due tot the mouse position).
- It would be nice if the drag movement would immediately lead to UI response (like dragging a semi transparent tab), now the UI responds after the mouse-up.
Enhancements:
- Make the taskbar button 'flash' on new message arrival (you mentioned this earlier yourself)
- Make the taskbar icon change when the other party is writing a message / goes idle / etc. (Maybe the goes idle part is already implemented.)
Keep up the good work!
Kind regards,
Jorre Meijrink
jmeijrink wrote:
- Make the taskbar icon change when the other party is writing a message / goes idle / etc. (Maybe the goes idle part is already implemented.)
You can check another Niklas patch here http://www.igniterealtime.org/community/thread/36161 (also spark.jar attached, but without history and tabbedpane patches).
SPARK-935 in my last comment. In that spark.jar it only works with tabs (cant drag them out), but you can see the status of the current tab in your taskbar.
Ok, thanks for your fast responses!
My primary issue is the history, so I'll stick to this version for now.
Kind regards,
Jorre Meijrink
Hi Jorre,
I know all these problems, but momentarily i've got no time to work on it.
But when my time is not rare anymore, I'll fix them.
Greetings
Hi Guys,
I've got some time and worked on this patch. I've fixed the problem, when clicking the popup on reiceiving a messag and i added a feature to recognize received Messages.
If you got an externalized ChatRoom and it's minized there is blinking a mail picture when you got unread messages.
Greetings
Great. I will test it and attach newer spark.jar here later (after i get home from work)
Attaching the last compilation. Jorre, showing the presence of user in a detached tab is working and also it shows typing notification. Also it shows blinkin envelop icon when you get a message, though personally i would prefer to simple taskbar entry blinking as it is more visible. Such envelop icon blinking would fit for http://www.igniterealtime.org/issues/browse/
SPARK-971 (blinking in systray).
Jorre, issue with window being out of the bounds is still present, but it is not related to tabs being on the bottom of the window. It behaves the same with tabs on top. It puts detached tab titlebar at the mouse pointer position i think. Not a big issue if you window is in the middle of the screen and you drag upwards.
Clicking on message popup is fixed now.
There is still issue with MUC. Muc room is showing with offline icon in taskbar and i dont get message popups when new messages arrive in a room, and taskbar entry is not flashing. Also it shows bolded red room title even if muc room is focused and i have to click on that tab to make it not bolded-red.
This is so far the only issue i've found. Everything else i have reported is fixed.
This is what I call Service (with a captial s)!
Special thanx of course to N1ck for the fixes!
I already downloaded the spark.jar and will start using it today.
Any issues I find I will report here.
Thanks again,
Jorre
Hi wroot,
About the replies in your post:
personally i would prefer to simple taskbar entry blinking as it is more visible. Such envelop icon blinking would fit for http://www.igniterealtime.org/issues/browse/
SPARK-971 (blinking in systray).
I do agree with you on this one, blinking taskbar entry is also default windows behaviour. Maybe both is best.
Jorre, issue with window being out of the bounds is still present, but it is not related to tabs being on the bottom of the window. It behaves the same with tabs on top. It puts detached tab titlebar at the mouse pointer position i think. Not a big issue if you window is in the middle of the screen and you drag upwards.
I also think it puts it the titlebar on the mouse pointer position, but it just feels unnattural that when you drag it only side-ways the new window is placed below the other window. I still think it would be more natural if only dragging side-ways would put the tab on the same height.
Kind regards,
Jorre
I bumped into the following issues:
1. when you drag a file onto the name of a user in the roster the message pane opens, but you only see the message history, the file transfer itself is not shown.
2. Spark hangs every now and then (I don't know if this is related to the spark.jar or to something else in the 2.6 beta). Is there a way I can help someone solve this problem by enabling debug-logging or something?
3. On my PC the online/away status is mostly wrong (I don't know if this is related to the spark.jar or to something else in the 2.6 beta).
4. If you switch between tabbed and stand-alone the active messages become history.
Well, after using it longer i've spotted another issue. After the tab becomes stale (inactive) taskbar shows it as offline, though it could be online or away. This only happens with tabbed pane and you have to bring it up, then the icon becomes offline.
one more issue: i have two tabs with offline contacts (user1, user2) open in tabbed mode. Focus is on user2 and tabbed window is minimized. Then user1 logs in. Taskbar icon turns to green. Though it should stay offline, as user2 is in focus and he's offline. If i bring the window up, then it starts to show correct icon (offline).
same with the typing notifications. if user2 starts typing it will change icon to typing no matter what user is currently focused.
recent experience: i'm not responding to some messages fast enough when only an envelop is blinking in the taskbar entry. Usually my taskbar is cluttered with 10-20 windows opened, all with different icons. I just dont notice new message if i'm looking at something in the upper part of the screen.
I must agree with you on this one. I have been missing some messages too.
me again :) Another issue. I wasnt at my desktop for a while and it was locked. When i unlocked it there were two new chat windows in my taskbar but they werent flashing nor with envelop blinking. I had one separate window with someone sending me messages. If i move it back to stack and that person sends me another message, then another one tab with that person appears and i got the same message in both. Seems that Spark is still handling separate chats and tabbed ones as different types of chats sometimes.
Any chance for an update to this patch to match one of the newer revisions?
All i can tell is that this patch will be split to parts (history fix, stability and emoticions fix, tabbedpane feature).
Thanks,
The externalized tabs are really my main interest. Any idea when that portion might be rolled out?
Sorry, can't tell you anything. Maybe Nick will comment here (though i doubt). I know that cstux (main SVN contributor now) was working with Nick on history and emoticons fixes, don't know if they were working on tabs too. This part should be more complex so i don't hope to see it soon.
Was wondering how I can get this update and can someone tell me (non programmer) how to update this option. I work with the Military and it is something that has been expressed to have the ability to have multiple chat windows open to visually see what is taken place in rooks. Most monitor several rooms at one time.
Any help would be great.
You can find spark.jar file attached in the last message on the previous page. You can put it in you Spark /lib folder, instead of the original one. Hope this works, cause i don't remember what version it is compatible with.
Hello,
Is there any news on this? I'm going to try implement this in the source code myself because I cannot login if I use the .jar file..
We're going to implement this in a fairly large company, and this is the only thing that is holding us back..
Thanks,
Georges
No news and i can't say when this issue can be properly addressed. I think you should try implementing this yourself. You are welcome to contribute your work of course ![]()