new messages update taskbar badge
This commit is contained in:
@@ -71,6 +71,7 @@ class ChatRoomController {
|
||||
params['console'] = false
|
||||
params['host'] = model.host
|
||||
params['roomTabName'] = newRoom
|
||||
params['chatNotificator'] = view.chatNotificator
|
||||
|
||||
mvcGroup.parentGroup.createMVCGroup("chat-room", model.host.getHumanReadableName()+"-"+newRoom, params)
|
||||
}
|
||||
@@ -110,6 +111,7 @@ class ChatRoomController {
|
||||
params['privateChat'] = true
|
||||
params['host'] = model.host
|
||||
params['roomTabName'] = p.getHumanReadableName()
|
||||
params['chatNotificator'] = view.chatNotificator
|
||||
|
||||
mvcGroup.parentGroup.createMVCGroup("chat-room", groupId, params)
|
||||
}
|
||||
@@ -191,6 +193,7 @@ class ChatRoomController {
|
||||
runInsideUIAsync {
|
||||
view.roomTextArea.append(toDisplay)
|
||||
trimLines()
|
||||
view.chatNotificator.onMessage(mvcGroup.mvcId)
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -458,6 +458,7 @@ class MainFrameController {
|
||||
def params = [:]
|
||||
params['core'] = model.core
|
||||
params['host'] = model.core.me
|
||||
params['chatNotificator'] = view.chatNotificator
|
||||
mvcGroup.createMVCGroup("chat-server","local-chat-server", params)
|
||||
}
|
||||
}
|
||||
@@ -489,6 +490,7 @@ class MainFrameController {
|
||||
def params = [:]
|
||||
params['core'] = model.core
|
||||
params['host'] = p
|
||||
params['chatNotificator'] = view.chatNotificator
|
||||
mvcGroup.createMVCGroup("chat-server", p.getHumanReadableName(), params)
|
||||
} else
|
||||
mvcGroup.getChildrenGroups().get(p.getHumanReadableName()).model.connect()
|
||||
|
@@ -2,6 +2,8 @@ package com.muwire.gui
|
||||
|
||||
import java.util.logging.Level
|
||||
|
||||
import javax.annotation.Nonnull
|
||||
|
||||
import com.muwire.core.Core
|
||||
import com.muwire.core.Persona
|
||||
import com.muwire.core.chat.ChatCommand
|
||||
@@ -13,6 +15,7 @@ import com.muwire.core.chat.ChatMessageEvent
|
||||
import com.muwire.core.chat.UIConnectChatEvent
|
||||
|
||||
import griffon.core.artifact.GriffonModel
|
||||
import griffon.inject.MVCMember
|
||||
import griffon.transform.Observable
|
||||
import groovy.util.logging.Log
|
||||
import griffon.metadata.ArtifactProviderFor
|
||||
@@ -20,6 +23,9 @@ import griffon.metadata.ArtifactProviderFor
|
||||
@Log
|
||||
@ArtifactProviderFor(GriffonModel)
|
||||
class ChatServerModel {
|
||||
@MVCMember @Nonnull
|
||||
ChatServerView view
|
||||
|
||||
Persona host
|
||||
Core core
|
||||
|
||||
@@ -133,6 +139,7 @@ class ChatServerModel {
|
||||
params['privateChat'] = true
|
||||
params['host'] = host
|
||||
params['roomTabName'] = e.sender.getHumanReadableName()
|
||||
params['chatNotificator'] = view.chatNotificator
|
||||
|
||||
mvcGroup.createMVCGroup("chat-room",groupId, params)
|
||||
}
|
||||
|
@@ -29,6 +29,8 @@ class ChatRoomView {
|
||||
@MVCMember @Nonnull
|
||||
ChatRoomController controller
|
||||
|
||||
ChatNotificator chatNotificator
|
||||
|
||||
def pane
|
||||
def parent
|
||||
def sayField
|
||||
@@ -92,6 +94,7 @@ class ChatRoomView {
|
||||
}
|
||||
|
||||
SmartScroller smartScroller = new SmartScroller(textScrollPane)
|
||||
pane.putClientProperty("mvcId", mvcGroup.mvcId)
|
||||
}
|
||||
|
||||
void mvcGroupInit(Map<String,String> args) {
|
||||
@@ -173,6 +176,7 @@ class ChatRoomView {
|
||||
int index = parent.indexOfComponent(pane)
|
||||
parent.removeTabAt(index)
|
||||
controller.leaveRoom()
|
||||
chatNotificator.roomClosed(mvcGroup.mvcId)
|
||||
mvcGroup.destroy()
|
||||
}
|
||||
}
|
@@ -19,14 +19,17 @@ class ChatServerView {
|
||||
ChatServerModel model
|
||||
@MVCMember @Nonnull
|
||||
ChatServerController controller
|
||||
|
||||
ChatNotificator chatNotificator
|
||||
|
||||
def pane
|
||||
def parent
|
||||
def childPane
|
||||
|
||||
void initUI() {
|
||||
pane = builder.panel {
|
||||
borderLayout()
|
||||
tabbedPane(id : model.host.getHumanReadableName()+"-chat-rooms", constraints : BorderLayout.CENTER)
|
||||
childPane = tabbedPane(id : model.host.getHumanReadableName()+"-chat-rooms", constraints : BorderLayout.CENTER)
|
||||
panel(constraints : BorderLayout.SOUTH) {
|
||||
gridLayout(rows : 1, cols : 3)
|
||||
panel {}
|
||||
@@ -39,6 +42,9 @@ class ChatServerView {
|
||||
}
|
||||
}
|
||||
}
|
||||
pane.putClientProperty("mvcId",mvcGroup.mvcId)
|
||||
pane.putClientProperty("childPane", childPane)
|
||||
childPane.addChangeListener({e -> chatNotificator.roomTabChanged(e.getSource())})
|
||||
}
|
||||
|
||||
void mvcGroupInit(Map<String,String> args) {
|
||||
@@ -69,6 +75,7 @@ class ChatServerView {
|
||||
params['roomTabName'] = 'Console'
|
||||
params['console'] = true
|
||||
params['host'] = model.host
|
||||
params['chatNotificator'] = chatNotificator
|
||||
mvcGroup.createMVCGroup("chat-room",model.host.getHumanReadableName()+"-"+ChatServer.CONSOLE, params)
|
||||
}
|
||||
|
||||
|
@@ -78,8 +78,10 @@ class MainFrameView {
|
||||
|
||||
|
||||
UISettings settings
|
||||
ChatNotificator chatNotificator
|
||||
|
||||
void initUI() {
|
||||
chatNotificator = new ChatNotificator(application.getMvcGroupManager())
|
||||
settings = application.context.get("ui-settings")
|
||||
int rowHeight = application.context.get("row-height")
|
||||
builder.with {
|
||||
@@ -522,6 +524,7 @@ class MainFrameView {
|
||||
|
||||
mainFrame.addWindowListener(new WindowAdapter(){
|
||||
public void windowClosing(WindowEvent e) {
|
||||
chatNotificator.mainWindowDeactivated()
|
||||
if (application.getContext().get("tray-icon")) {
|
||||
if (settings.closeWarning) {
|
||||
runInsideUIAsync {
|
||||
@@ -535,6 +538,13 @@ class MainFrameView {
|
||||
} else {
|
||||
closeApplication()
|
||||
}
|
||||
}
|
||||
public void windowDeactivated(WindowEvent e) {
|
||||
chatNotificator.mainWindowDeactivated()
|
||||
}
|
||||
public void windowActivated(WindowEvent e) {
|
||||
if (!model.chatPaneButtonEnabled)
|
||||
chatNotificator.mainWindowActivated()
|
||||
}})
|
||||
|
||||
// search field
|
||||
@@ -831,6 +841,10 @@ class MainFrameView {
|
||||
}
|
||||
})
|
||||
|
||||
// chat tabs
|
||||
def chatTabbedPane = builder.getVariable("chat-tabs")
|
||||
chatTabbedPane.addChangeListener({e -> chatNotificator.serverTabChanged(e.getSource())})
|
||||
|
||||
// show tree by default
|
||||
showSharedFilesTree.call()
|
||||
|
||||
@@ -1033,6 +1047,7 @@ class MainFrameView {
|
||||
model.monitorPaneButtonEnabled = true
|
||||
model.trustPaneButtonEnabled = true
|
||||
model.chatPaneButtonEnabled = true
|
||||
chatNotificator.mainWindowDeactivated()
|
||||
}
|
||||
|
||||
def showDownloadsWindow = {
|
||||
@@ -1044,6 +1059,7 @@ class MainFrameView {
|
||||
model.monitorPaneButtonEnabled = true
|
||||
model.trustPaneButtonEnabled = true
|
||||
model.chatPaneButtonEnabled = true
|
||||
chatNotificator.mainWindowDeactivated()
|
||||
}
|
||||
|
||||
def showUploadsWindow = {
|
||||
@@ -1055,6 +1071,7 @@ class MainFrameView {
|
||||
model.monitorPaneButtonEnabled = true
|
||||
model.trustPaneButtonEnabled = true
|
||||
model.chatPaneButtonEnabled = true
|
||||
chatNotificator.mainWindowDeactivated()
|
||||
}
|
||||
|
||||
def showMonitorWindow = {
|
||||
@@ -1066,6 +1083,7 @@ class MainFrameView {
|
||||
model.monitorPaneButtonEnabled = false
|
||||
model.trustPaneButtonEnabled = true
|
||||
model.chatPaneButtonEnabled = true
|
||||
chatNotificator.mainWindowDeactivated()
|
||||
}
|
||||
|
||||
def showTrustWindow = {
|
||||
@@ -1077,6 +1095,7 @@ class MainFrameView {
|
||||
model.monitorPaneButtonEnabled = true
|
||||
model.trustPaneButtonEnabled = false
|
||||
model.chatPaneButtonEnabled = true
|
||||
chatNotificator.mainWindowDeactivated()
|
||||
}
|
||||
|
||||
def showChatWindow = {
|
||||
@@ -1088,6 +1107,7 @@ class MainFrameView {
|
||||
model.monitorPaneButtonEnabled = true
|
||||
model.trustPaneButtonEnabled = true
|
||||
model.chatPaneButtonEnabled = false
|
||||
chatNotificator.mainWindowActivated()
|
||||
}
|
||||
|
||||
def showSharedFilesTable = {
|
||||
|
Reference in New Issue
Block a user