package call.gui; import javax.swing.JComponent; import javax.swing.SwingUtilities; import call.Call; import call.CallFactory; import call.CallUi; import call.Contact; import call.Util; public class GuiAdapter implements CallUi.CallUiAdapter { private final MainWindow main; public GuiAdapter(MainWindow main) { this.main = main; } @Override public void openCall(final Contact contact) { @SuppressWarnings("unused") Call call = CallFactory.getCall(contact); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { ChatTab.getInstance(contact).getCallaction().openCall(); } }); } @Override public void openChat(Contact contact) { // open and select the tab final String tabName = contact.toString(); final JComponent tabContent = ChatTab.getInstance(contact).getComponent(); // final Icon tabIcon = Resources.getIcon(contact); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { MainTabs tabs = main.getTabs(); tabs.closeInactiveChatTabsExcept(Util.asSet(new String[] { tabName })); tabs.addTab(tabName, tabContent); tabs.showTab(tabName); } }); } @Override public void updateCallStats(final Contact contact, final float incomingSpeed, final long incomingTotal, final float outgoingSpeed, final long outgoingTotal) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { ChatTab.getInstance(contact).updateCallStats(incomingSpeed, incomingTotal, outgoingSpeed, outgoingTotal); } }); } }