1 package org.columba.chat.ui.frame; 19 20 import java.awt.BorderLayout ; 21 import java.io.InputStream ; 22 23 import javax.swing.BorderFactory ; 24 import javax.swing.JPanel ; 25 import javax.swing.JScrollPane ; 26 27 import org.columba.api.gui.frame.IContainer; 28 import org.columba.api.gui.frame.IDock; 29 import org.columba.api.gui.frame.IDockable; 30 import org.columba.chat.resourceloader.ResourceLoader; 31 import org.columba.chat.ui.conversation.ConversationController; 32 import org.columba.chat.ui.conversation.api.IConversationController; 33 import org.columba.chat.ui.frame.api.IChatFrameMediator; 34 import org.columba.chat.ui.presence.PresenceComboBox; 35 import org.columba.chat.ui.presence.api.IPresenceController; 36 import org.columba.chat.ui.roaster.RoasterTree; 37 import org.columba.chat.ui.roaster.api.IRoasterController; 38 import org.columba.core.config.ViewItem; 39 import org.columba.core.gui.frame.DockFrameController; 40 41 45 public class AlturaFrameController extends DockFrameController implements 46 IChatFrameMediator { 47 48 private RoasterTree tree; 49 50 private PresenceComboBox presence; 51 52 private ConversationController conversation; 53 54 private IDockable treePanel; 55 56 private IDockable conversationPanel; 57 58 62 public AlturaFrameController(ViewItem viewItem) { 63 super(viewItem); 64 65 tree = new RoasterTree(this); 66 presence = new PresenceComboBox(this); 67 conversation = new ConversationController(); 68 69 registerDockables(); 70 71 74 } 75 76 private void registerDockables() { 77 78 JPanel leftPanel = new JPanel (); 79 leftPanel.setLayout(new BorderLayout ()); 80 81 JScrollPane treeScrollPane = new JScrollPane (tree); 82 treeScrollPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); 83 leftPanel.add(treeScrollPane, BorderLayout.CENTER); 84 leftPanel.add(presence, BorderLayout.NORTH); 85 86 treePanel = registerDockable("roaster_tree", ResourceLoader.getString( 87 "global", "dockable_roaster"), leftPanel, null); 88 89 conversationPanel = registerDockable("conversation_view", 90 ResourceLoader.getString("global", "dockable_conversation"), 91 conversation, null); 92 93 } 94 95 98 public void loadDefaultPosition() { 99 100 super.dock(conversationPanel, IDock.REGION.CENTER); 101 102 super.dock(treePanel, conversationPanel, IDock.REGION.WEST, 0.3f); 103 104 super.setSplitProportion(conversationPanel, 0.35f); 105 } 106 107 110 public IRoasterController getRoasterTree() { 111 return tree; 112 } 113 114 117 public IPresenceController getPresenceController() { 118 return presence; 119 } 120 121 124 public IConversationController getConversationController() { 125 return conversation; 126 } 127 128 129 130 public void extendMenu(IContainer container) { 131 132 InputStream is = this.getClass().getResourceAsStream( 133 "/org/columba/chat/action/menu.xml"); 134 container.extendMenu(this, is); 135 136 } 137 138 public void extendToolBar(IContainer container) { 139 140 InputStream is2 = this.getClass().getResourceAsStream( 141 "/org/columba/chat/action/toolbar.xml"); 142 container.extendToolbar(this, is2); 143 144 } 145 146 149 @Override 150 public String getString(String sPath, String sName, String sID) { 151 return ResourceLoader.getString(sPath, sID); 152 } 153 154 } | Popular Tags |