Changeset 2275
- Timestamp:
- 06/03/07 16:11:50 (2 years ago)
- Files:
-
- eclipsetracplugin/eclipse/trunk/EclipseTrac/feature.xml (modified) (1 diff)
- eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/META-INF/MANIFEST.MF (modified) (1 diff)
- eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/models/TracServer.java (modified) (2 diffs)
- eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/models/TracServerList.java (modified) (6 diffs)
- eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/server/NewTracServer.java (modified) (4 diffs)
- eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/server/NewTracServerPage.java (modified) (15 diffs)
- eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/server/ServerView.java (modified) (1 diff)
- eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/views/actions/TracServerActionProvider.java (modified) (9 diffs)
- eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/xmlrpc/Trac.java (modified) (2 diffs)
- eclipsetracplugin/eclipse/update/features/EclipseTrac_1.0.4.jar (deleted)
- eclipsetracplugin/eclipse/update/features/EclipseTrac_1.0.5.jar (added)
- eclipsetracplugin/eclipse/update/plugins/mm.eclipse.trac_1.0.4.jar (deleted)
- eclipsetracplugin/eclipse/update/plugins/mm.eclipse.trac_1.0.5.jar (added)
- eclipsetracplugin/eclipse/update/plugins/org.apache.xmlrpc_1.0.0.jar (modified) (previous)
- eclipsetracplugin/eclipse/update/site.xml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
eclipsetracplugin/eclipse/trunk/EclipseTrac/feature.xml
r2274 r2275 3 3 id="EclipseTrac" 4 4 label="Eclipse Trac" 5 version="1.0. 4"5 version="1.0.5" 6 6 provider-name="Matteo Merli" 7 7 plugin="mm.eclipse.trac"> eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/META-INF/MANIFEST.MF
r2274 r2275 3 3 Bundle-Name: Trac Plug-in 4 4 Bundle-SymbolicName: mm.eclipse.trac; singleton:=true 5 Bundle-Version: 1.0. 45 Bundle-Version: 1.0.5 6 6 Bundle-Activator: mm.eclipse.trac.Activator 7 7 Require-Bundle: org.eclipse.ui, eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/models/TracServer.java
r2161 r2275 6 6 import java.net.URL; 7 7 8 import mm.eclipse.trac.Log; 8 9 import mm.eclipse.trac.xmlrpc.Trac; 9 10 import mm.eclipse.trac.xmlrpc.Wiki; … … 61 62 } catch ( Throwable t ) 62 63 { 64 Log.warning( "Error connecting to server '" + url.toString() + "': " + t.getMessage(), new Exception( t.getCause() ) ); 63 65 connected = false; 64 66 problems = true; eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/models/TracServerList.java
r2161 r2275 14 14 import java.util.Iterator; 15 15 import java.util.List; 16 import java.util.SortedMap; 17 import java.util.TreeMap; 16 18 17 19 import javax.xml.parsers.DocumentBuilder; … … 43 45 public class TracServerList extends ModelBase implements Iterable<TracServer> 44 46 { 45 private List<TracServer> servers;47 private SortedMap<String,TracServer> servers; 46 48 47 49 public List<TracServer> getServers() 48 50 { 49 return servers;51 return new ArrayList<TracServer>( servers.values() ); 50 52 } 51 53 52 54 public TracServer getServerByName( String name ) 53 55 { 54 for ( TracServer server : servers ) 55 if ( server.getName().equals( name ) ) 56 return server; 57 58 return null; 56 return servers.get( name ); 57 } 58 59 /** 60 * @param name Trac server name to check 61 * @return 62 */ 63 public boolean hasServerName( String name ) 64 { 65 return servers.get( name ) != null; 59 66 } 60 67 61 68 public void addServer( TracServer server ) 62 69 { 63 servers. add(server );70 servers.put( server.getName(), server ); 64 71 notifyChanged(); 65 72 } … … 67 74 public void removeServer( TracServer server ) 68 75 { 69 servers.remove( server );76 servers.remove( server.getName() ); 70 77 notifyChanged(); 71 78 } … … 73 80 private TracServerList() 74 81 { 75 servers = new ArrayList<TracServer>();82 servers = new TreeMap<String,TracServer>(); 76 83 loadPreferences(); 77 84 … … 109 116 TracServer server = new TracServer(name,new URL(url),username,password,Boolean.parseBoolean(anonymous)); 110 117 server.connect(); 111 servers. add(server);118 servers.put( name, server ); 112 119 } 113 120 } … … 135 142 if ( servers == null ) return null; 136 143 137 return servers. iterator();144 return servers.values().iterator(); 138 145 } 139 146 eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/server/NewTracServer.java
r2016 r2275 2 2 3 3 import mm.eclipse.trac.Log; 4 import mm.eclipse.trac.models.TracServer; 4 5 import mm.eclipse.trac.models.TracServerList; 5 6 … … 22 23 { 23 24 private NewTracServerPage page; 25 private TracServer server; 24 26 25 27 /** … … 28 30 public NewTracServer() 29 31 { 32 this( null ); 33 } 34 35 public NewTracServer( TracServer tracServer ) 36 { 30 37 super(); 31 38 setNeedsProgressMonitor( true ); 39 this.server = tracServer; 32 40 } 33 41 … … 38 46 public void addPages() 39 47 { 40 page = new NewTracServerPage( );48 page = new NewTracServerPage( server ); 41 49 addPage( page ); 42 50 } eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/server/NewTracServerPage.java
r2274 r2275 6 6 import mm.eclipse.trac.Images; 7 7 import mm.eclipse.trac.models.TracServer; 8 import mm.eclipse.trac.models.TracServerList; 8 9 9 10 import org.eclipse.jface.dialogs.IDialogPage; … … 14 15 import org.eclipse.swt.events.SelectionEvent; 15 16 import org.eclipse.swt.events.SelectionListener; 16 import org.eclipse.swt.graphics.Color;17 17 import org.eclipse.swt.layout.GridData; 18 18 import org.eclipse.swt.layout.GridLayout; … … 42 42 private TracServer server; 43 43 44 private boolean isEditing; 45 private String oldName; 46 44 47 public NewTracServerPage() 48 { 49 this( null ); 50 } 51 52 public NewTracServerPage( TracServer tracServer ) 45 53 { 46 54 super( "wizardPage" ); … … 49 57 setDescription( "This wizard creates a new connections with a Trac server." ); 50 58 setPageComplete( false ); 59 server = tracServer; 60 isEditing = server != null; 61 if ( isEditing ) 62 oldName = server.getName(); 51 63 } 52 64 … … 68 80 GridData gd = new GridData( GridData.FILL_HORIZONTAL ); 69 81 serverName.setLayoutData( gd ); 70 serverName. addModifyListener( this);82 serverName.setToolTipText( "A human-friendly name for this server profile." ); 71 83 72 84 label = new Label( container, SWT.NULL ); … … 76 88 gd = new GridData( GridData.FILL_HORIZONTAL ); 77 89 serverUrl.setLayoutData( gd ); 78 serverUrl. addModifyListener( this);90 serverUrl.setToolTipText( "The base URL of the Trac project" ); 79 91 80 92 anonymous = new Button( container, SWT.CHECK ); … … 82 94 gd = new GridData( GridData.FILL_HORIZONTAL ); 83 95 anonymous.setLayoutData( gd ); 84 anonymous.addSelectionListener( new SelectionListener() { 85 public void widgetDefaultSelected( SelectionEvent e ) 86 {} 87 88 public void widgetSelected( SelectionEvent e ) 89 { 90 username.setEnabled( !anonymous.getSelection() ); 91 password.setEnabled( !anonymous.getSelection() ); 92 modifyText( null ); 93 } 94 } ); 96 anonymous.setToolTipText( "Whether to use anonymous login or not" ); 95 97 96 98 new Label( container, SWT.NULL ); … … 102 104 gd = new GridData( GridData.FILL_HORIZONTAL ); 103 105 username.setLayoutData( gd ); 104 username. addModifyListener( this);106 username.setToolTipText( "Your Trac account username" ); 105 107 106 108 label = new Label( container, SWT.NULL ); … … 111 113 password.setLayoutData( gd ); 112 114 password.setEchoChar( (char) 0x2022 ); 113 password. addModifyListener( this);115 password.setToolTipText( "Your Trac account password" ); 114 116 115 117 validateButton = new Button( container, SWT.PUSH ); 116 118 validateButton.setText( "Validate server connection" ); 119 120 if ( isEditing ) 121 { 122 serverName.setText( server.getName() ); 123 serverUrl.setText( server.getUrl().toString() ); 124 anonymous.setSelection( server.isAnonymous() ); 125 if ( server.getUsername() != null ) 126 username.setText( server.getUsername() ); 127 password.setText( server.getPassword() ); 128 } 129 130 serverName.addModifyListener( this ); 131 serverUrl.addModifyListener( this ); 132 username.addModifyListener( this ); 133 password.addModifyListener( this ); 134 135 anonymous.addSelectionListener( new SelectionListener() { 136 public void widgetDefaultSelected( SelectionEvent e ) 137 {} 138 139 public void widgetSelected( SelectionEvent e ) 140 { 141 username.setEnabled( !anonymous.getSelection() ); 142 password.setEnabled( !anonymous.getSelection() ); 143 modifyText( null ); 144 } 145 } ); 146 117 147 validateButton.addSelectionListener( new SelectionListener() { 118 148 119 149 public void widgetDefaultSelected( SelectionEvent e ) 120 { 121 } 122 150 {} 151 123 152 public void widgetSelected( SelectionEvent e ) 124 153 { … … 128 157 validateButton.setText( "Connection with server is OK." ); 129 158 validateButton.setEnabled( false ); 130 } 131 else 159 } else 132 160 { 133 161 validateButton.setText( "Cannot connect to server." ); … … 156 184 } 157 185 186 if ( ! isEditing || ! oldName.equals( getServerName() ) ) 187 { 188 if ( TracServerList.getInstance().hasServerName( getServerName() ) ) 189 { 190 updateStatus( "Name '" + getServerName() + "' is already used." ); 191 return; 192 } 193 } 194 158 195 if ( getServerUrl().length() == 0 ) 159 196 { … … 188 225 189 226 setErrorMessage( null ); 227 validateButton.setEnabled( true ); 190 228 } 191 229 … … 196 234 try 197 235 { 198 url = new URL( getServerUrl() ); 199 200 server = new TracServer( getServerName(), url, getUsername(), getPassword(), 201 getAnonymous() ); 236 String s = getServerUrl(); 237 238 // Remove trailing Trac URL paths 239 if ( s.endsWith( "/login/xmlrpc" ) ) 240 { 241 s = s.replace( "/login/xmlrpc", "" ); 242 } else if ( s.endsWith( "/xmlrpc" ) ) 243 { 244 s = s.replace( "/xmlrpc", "" ); 245 } 246 247 url = new URL( s ); 248 249 if ( server == null ) 250 server = new TracServer( getServerName(), url, getUsername(), getPassword(), 251 getAnonymous() ); 252 else 253 { 254 server.disconnect(); 255 server.setName( getServerName() ); 256 server.setUrl( url ); 257 server.setAnonymous( getAnonymous() ); 258 server.setUsername( getUsername() ); 259 server.setPassword( getPassword() ); 260 } 261 202 262 server.connect(); 203 if ( !server.isConnected() ) 263 if ( server.isConnected() ) 264 { 265 setErrorMessage( null ); 266 setPageComplete( true ); 267 } 268 else 204 269 { 205 270 updateStatus( "Connection with server failed." ); 206 return;207 271 } 208 272 … … 210 274 { 211 275 updateStatus( "The URL is not valid." ); 212 return; 213 } 214 215 setErrorMessage( null ); 216 setPageComplete( true ); 276 } 217 277 } 218 278 … … 222 282 setErrorMessage( message ); 223 283 setPageComplete( false ); 284 validateButton.setEnabled( false ); 224 285 } 225 286 eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/server/ServerView.java
r2016 r2275 175 175 { 176 176 177 @SuppressWarnings("unchecked") 177 178 public Object[] getElements( Object inputElement ) 178 179 { eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/views/actions/TracServerActionProvider.java
r2274 r2275 7 7 import mm.eclipse.trac.models.TracServer; 8 8 import mm.eclipse.trac.models.TracServerList; 9 import mm.eclipse.trac.server.NewTracServer; 9 10 10 11 import org.eclipse.jface.action.Action; … … 14 15 import org.eclipse.jface.viewers.IStructuredSelection; 15 16 import org.eclipse.jface.viewers.StructuredViewer; 17 import org.eclipse.jface.wizard.WizardDialog; 16 18 import org.eclipse.swt.widgets.Display; 17 19 … … 26 28 private Action connectAction; 27 29 private Action disconnectAction; 30 private Action editAction; 28 31 private Action deleteAction; 29 32 … … 42 45 public void run() 43 46 { 44 if (!viewer.getSelection().isEmpty()) { 47 if ( !viewer.getSelection().isEmpty() ) 48 { 45 49 TracServer server = (TracServer) ((IStructuredSelection) viewer 46 50 .getSelection()).getFirstElement(); … … 61 65 public void run() 62 66 { 63 if (!viewer.getSelection().isEmpty()) { 67 if ( !viewer.getSelection().isEmpty() ) 68 { 64 69 TracServer server = (TracServer) ((IStructuredSelection) viewer 65 70 .getSelection()).getFirstElement(); … … 75 80 disconnectAction.setText( "Disconnect from server" ); 76 81 82 editAction = new Action() { 83 @Override 84 public void run() 85 { 86 if ( viewer.getSelection().isEmpty() ) 87 return; 88 89 TracServer server = (TracServer) ((IStructuredSelection) viewer 90 .getSelection()).getFirstElement(); 91 92 // Create the wizard 93 WizardDialog dialog = new WizardDialog( viewer.getControl().getShell(), 94 new NewTracServer( server ) ); 95 dialog.open(); 96 } 97 }; 98 99 editAction.setText( "Modify server settings" ); 100 77 101 deleteAction = new Action() { 78 102 @Override 79 103 public void run() 80 104 { 81 if (!viewer.getSelection().isEmpty()) { 105 if ( !viewer.getSelection().isEmpty() ) 106 { 82 107 TracServer server = (TracServer) ((IStructuredSelection) viewer 83 108 .getSelection()).getFirstElement(); 84 109 85 110 // Open a dialog and ask to confirm 86 boolean res = MessageDialog.openQuestion( viewer.getControl() 87 .getShell(), "Confirm Trac server deletion", 88 "Are you sure to delete the '" + server.getName() 89 + "' server configuration?" ); 111 boolean res = MessageDialog 112 .openQuestion( viewer.getControl().getShell(), 113 "Confirm Trac server deletion", 114 "Are you sure to delete the '" 115 + server.getName() 116 + "' server configuration?" ); 90 117 91 if ( res != true)118 if ( res != true ) 92 119 return; 93 120 … … 113 140 public void fillMenu( IMenuManager menu, IStructuredSelection selection ) 114 141 { 115 if ( selection.size() != 1)142 if ( selection.size() != 1 ) 116 143 return; 117 144 118 if (selection.getFirstElement() instanceof TracServer) { 145 if ( selection.getFirstElement() instanceof TracServer ) 146 { 119 147 TracServer server = (TracServer) selection.getFirstElement(); 120 148 … … 129 157 menu.add( disconnectAction ); 130 158 menu.add( new Separator() ); 159 menu.add( editAction ); 131 160 menu.add( deleteAction ); 132 161 } … … 139 168 */ 140 169 public void doubleClick( IStructuredSelection selection ) 141 { 142 } 170 {} 143 171 144 172 private static abstract class ServerExecutor implements Runnable eclipsetracplugin/eclipse/trunk/mm.eclipse.trac/src/mm/eclipse/trac/xmlrpc/Trac.java
r2274 r2275 15 15 import org.apache.xmlrpc.client.XmlRpcClient; 16 16 import org.apache.xmlrpc.client.XmlRpcClientConfigImpl; 17 import org.apache.xmlrpc.client.XmlRpcLiteHttpTransportFactory;18 import org.apache.xmlrpc.client.XmlRpcSunHttpTransport;19 17 import org.apache.xmlrpc.client.XmlRpcSunHttpTransportFactory; 20 18 … … 34 32 String sUrl = url.toString(); 35 33 String sep = sUrl.endsWith( "/" ) ? "" : "/"; 34 String path; 35 if ( anonymous ) 36 path = "xmlrpc"; 37 else 38 path = "login/xmlrpc"; 36 39 37 config.setServerURL( new URL( sUrl + sep + "login/xmlrpc") );40 config.setServerURL( new URL( sUrl + sep + path ) ); 38 41 39 42 if ( !anonymous ) eclipsetracplugin/eclipse/update/site.xml
r2274 r2275 4 4 Trac Plugin 5 5 </description> 6 <feature url="features/EclipseTrac_1.0. 4.jar" id="EclipseTrac" version="1.0.4">6 <feature url="features/EclipseTrac_1.0.5.jar" id="EclipseTrac" version="1.0.5"> 7 7 <category name="Trac"/> 8 8 </feature>
