Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 74846 Details for
Bug 192757
[IRC] support /server command
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
"/server Command" patch
ecf-irc-servercommand.diff (text/plain), 6.65 KB, created by
Cagatay Calli
on 2007-07-27 19:24:08 EDT
(
hide
)
Description:
"/server Command" patch
Filename:
MIME Type:
Creator:
Cagatay Calli
Created:
2007-07-27 19:24:08 EDT
Size:
6.65 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.ecf.provider.irc.ui >Index: src/org/eclipse/ecf/internal/irc/ui/IRCUI.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.ecf/plugins/org.eclipse.ecf.provider.irc.ui/src/org/eclipse/ecf/internal/irc/ui/IRCUI.java,v >retrieving revision 1.5 >diff -u -r1.5 IRCUI.java >--- src/org/eclipse/ecf/internal/irc/ui/IRCUI.java 27 Jul 2007 15:11:23 -0000 1.5 >+++ src/org/eclipse/ecf/internal/irc/ui/IRCUI.java 27 Jul 2007 23:24:33 -0000 >@@ -8,21 +8,30 @@ > * Contributors: > * Composent, Inc. - initial API and implementation > * Jacek Pospychala <jacek.pospychala@pl.ibm.com> - bug 197329 >+ * Cagatay Calli <ccalli@gmail.com> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=192757 > *****************************************************************************/ > > package org.eclipse.ecf.internal.irc.ui; > > import java.net.URI; > import java.net.URISyntaxException; >+import java.util.Random; > import java.util.StringTokenizer; > >+import org.eclipse.ecf.core.ContainerCreateException; >+import org.eclipse.ecf.core.ContainerFactory; > import org.eclipse.ecf.core.IContainer; > import org.eclipse.ecf.core.identity.ID; >+import org.eclipse.ecf.core.identity.IDFactory; >+import org.eclipse.ecf.core.security.ConnectContextFactory; >+import org.eclipse.ecf.core.security.IConnectContext; > import org.eclipse.ecf.core.util.IExceptionHandler; > import org.eclipse.ecf.presence.chatroom.IChatRoomContainer; > import org.eclipse.ecf.presence.chatroom.IChatRoomManager; > import org.eclipse.ecf.presence.ui.chatroom.ChatRoomManagerUI; > import org.eclipse.ecf.presence.ui.chatroom.IMessageRenderer; >+import org.eclipse.ecf.ui.actions.AsynchContainerConnectAction; >+import org.eclipse.ecf.ui.util.PasswordCacheHelper; > import org.eclipse.jface.dialogs.MessageDialog; > import org.eclipse.osgi.util.NLS; > >@@ -36,6 +45,9 @@ > private static final String COMMAND_PREFIX = "/"; //$NON-NLS-1$ > > private static final String COMMAND_DELIM = " "; //$NON-NLS-1$ >+ >+ String connectID; >+ String password; > > /** > * @param container >@@ -91,8 +103,55 @@ > while (command.startsWith(COMMAND_PREFIX)) > command = command.substring(1); > // Look at first one and switch >- String[] args = new String[tokens.length - 1]; >+ final String[] args = new String[tokens.length - 1]; > System.arraycopy(tokens, 1, args, 0, tokens.length - 1); >+ >+ // SERVER can be done from root or channel >+ if (command.equalsIgnoreCase(Messages.IRCUI_SERVER_COMMAND)) { >+ // TODO Implement SERVER command >+ int size = args.length; >+ for(int i=0;i<size;i++){ >+ if(i==0){ >+ connectID = getConnectID(args[i]); >+ } >+ else if(i==1){ >+ password = args[i]; >+ } >+ } >+ >+ if(connectID.indexOf("@") == -1){ >+ String nick = "ecfuser" + getRandomNumber(); >+ connectID = nick + "@" + connectID; >+ } >+ >+ try { >+ IContainer container = ContainerFactory.getDefault() >+ .createContainer("ecf.irc.irclib"); >+ >+ IConnectContext connectContext = ConnectContextFactory >+ .createPasswordConnectContext(connectID); >+ >+ targetID = IDFactory.getDefault().createID( >+ container.getConnectNamespace(), connectID); >+ >+ IChatRoomManager manager = (IChatRoomManager) container >+ .getAdapter(IChatRoomManager.class); >+ >+ IRCUI ui = new IRCUI(container, manager, null); >+ ui.showForTarget(targetID); >+ // If it's not already connected, then we connect this new container >+ if (!ui.isContainerConnected()) { >+ new AsynchContainerConnectAction(container, targetID, connectContext, null, new Runnable() { >+ public void run() { >+ cachePassword(getPasswordKeyFromUserName(connectID), password); >+ }}).run(); >+ } >+ } catch (Exception e) { >+ e.printStackTrace(); >+ } >+ >+ return null; >+ } > // JOIN can be done from root or channel > if (command.equalsIgnoreCase(Messages.IRCUI_JOIN_COMMAND)) { > chatroomview.joinRoom(manager.getChatRoomInfo(args[0]), (args.length > 1)?args[1]:""); >@@ -122,8 +181,35 @@ > return inputLine; > > } >- >+ > protected IMessageRenderer getDefaultMessageRenderer() { > return new IRCMessageRenderer(); > } >+ >+ // TODO Share these methods from a common class between IRCConnectWizardPage and IRCUI >+ String getConnectID(String connectText) { >+ String clean = connectText.replaceAll("#",""); //$NON-NLS-1$ //$NON-NLS-2$ >+ return clean; >+ } >+ >+ String getPasswordKeyFromUserName(String username) { >+ if (username == null || username.equals("")) return null; >+ else { >+ int slashIndex = username.indexOf("/"); >+ if (slashIndex == -1) return username; >+ else return username.substring(0,username.indexOf("/")); >+ } >+ } >+ >+ protected void cachePassword(final String connectID, String password) { >+ if (password != null && !password.equals("")) { >+ PasswordCacheHelper pwStorage = new PasswordCacheHelper(connectID); >+ pwStorage.savePassword(password); >+ } >+ } >+ >+ private String getRandomNumber() { >+ Random random = new Random(); >+ return String.valueOf(random.nextInt(100000)); >+ } > } >Index: src/org/eclipse/ecf/internal/irc/ui/messages.properties >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.ecf/plugins/org.eclipse.ecf.provider.irc.ui/src/org/eclipse/ecf/internal/irc/ui/messages.properties,v >retrieving revision 1.4 >diff -u -r1.4 messages.properties >--- src/org/eclipse/ecf/internal/irc/ui/messages.properties 26 Jul 2007 20:42:12 -0000 1.4 >+++ src/org/eclipse/ecf/internal/irc/ui/messages.properties 27 Jul 2007 23:24:33 -0000 >@@ -1,6 +1,7 @@ > IRCHyperlink_EXCEPTION_IRC_HYPERLINK=Exception in IRC hyperlink open > IRCConnectWizardPage_CONNECTID_LABEL=Connect ID: > IRCConnectWizardPage_PASSWORD_LABEL=Password: >+IRCUI_SERVER_COMMAND=SERVER > IRCUI_JOIN_COMMAND=JOIN > IRCUI_QUIT_COMMAND=QUIT > IRCUI_DISCONNECT_CONFIRM_TITLE=Disconnect from Server >Index: src/org/eclipse/ecf/internal/irc/ui/Messages.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.ecf/plugins/org.eclipse.ecf.provider.irc.ui/src/org/eclipse/ecf/internal/irc/ui/Messages.java,v >retrieving revision 1.4 >diff -u -r1.4 Messages.java >--- src/org/eclipse/ecf/internal/irc/ui/Messages.java 26 Jul 2007 20:42:12 -0000 1.4 >+++ src/org/eclipse/ecf/internal/irc/ui/Messages.java 27 Jul 2007 23:24:33 -0000 >@@ -32,6 +32,7 @@ > public static String IRCUI_DEPART_CONFIRM_TITLE; > public static String IRCUI_DISCONNECT_CONFIRM_MESSAGE; > public static String IRCUI_DISCONNECT_CONFIRM_TITLE; >+ public static String IRCUI_SERVER_COMMAND; > public static String IRCUI_JOIN_COMMAND; > public static String IRCUI_PART_COMMAND; > public static String IRCUI_QUIT_COMMAND;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 192757
:
74846
|
74847
|
74853