Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 58646
Collapse All | Expand All

(-)plugin.xml (-1 / +10 lines)
Lines 1059-1065 Link Here
1059
            id="org.eclipse.quickdiff.providers.CVSReferenceProvider">
1059
            id="org.eclipse.quickdiff.providers.CVSReferenceProvider">
1060
      </referenceprovider>
1060
      </referenceprovider>
1061
   </extension>
1061
   </extension>
1062
   
1062
<!-- *************** Browser Editor **************** -->
1063
   <extension
1064
         point="org.eclipse.ui.editors">
1065
      <editor
1066
            name="BrowserEditor"
1067
            icon="icons/full/eview16/history_view.gif"
1068
            class="org.eclipse.team.internal.ccvs.ui.BrowserEditor"
1069
            id="org.eclipse.team.ccvs.ui.BrowserEditor">
1070
      </editor>
1071
   </extension>   
1063
<!-- ********** New Project Wizard ************** --> 
1072
<!-- ********** New Project Wizard ************** --> 
1064
   <extension
1073
   <extension
1065
         point="org.eclipse.ui.newWizards">
1074
         point="org.eclipse.ui.newWizards">
(-)src/org/eclipse/team/internal/ccvs/ui/HistoryView.java (-18 / +248 lines)
Lines 11-48 Link Here
11
package org.eclipse.team.internal.ccvs.ui;
11
package org.eclipse.team.internal.ccvs.ui;
12
12
13
 
13
 
14
import java.io.IOException;
14
import java.io.InputStream;
15
import java.io.InputStream;
15
import java.lang.reflect.InvocationTargetException;
16
import java.lang.reflect.InvocationTargetException;
17
import java.net.MalformedURLException;
18
import java.net.URL;
19
import java.net.URLConnection;
16
import java.util.ArrayList;
20
import java.util.ArrayList;
21
import java.util.HashMap;
17
import java.util.Iterator;
22
import java.util.Iterator;
18
23
import java.util.Set;
19
import org.eclipse.core.resources.*;
24
import java.util.regex.Matcher;
20
import org.eclipse.core.runtime.*;
25
import java.util.regex.Pattern;
26
import org.eclipse.core.resources.IFile;
27
import org.eclipse.core.resources.IResource;
28
import org.eclipse.core.resources.IWorkspaceRunnable;
29
import org.eclipse.core.runtime.CoreException;
30
import org.eclipse.core.runtime.IAdaptable;
31
import org.eclipse.core.runtime.IProgressMonitor;
32
import org.eclipse.core.runtime.IStatus;
33
import org.eclipse.core.runtime.QualifiedName;
34
import org.eclipse.core.runtime.Status;
35
import org.eclipse.core.runtime.SubProgressMonitor;
21
import org.eclipse.core.runtime.jobs.Job;
36
import org.eclipse.core.runtime.jobs.Job;
22
import org.eclipse.jface.action.*;
37
import org.eclipse.jface.action.Action;
23
import org.eclipse.jface.dialogs.*;
38
import org.eclipse.jface.action.IAction;
39
import org.eclipse.jface.action.IMenuListener;
40
import org.eclipse.jface.action.IMenuManager;
41
import org.eclipse.jface.action.IToolBarManager;
42
import org.eclipse.jface.action.MenuManager;
43
import org.eclipse.jface.action.Separator;
44
import org.eclipse.jface.dialogs.IDialogConstants;
45
import org.eclipse.jface.dialogs.MessageDialog;
46
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
24
import org.eclipse.jface.preference.IPreferenceStore;
47
import org.eclipse.jface.preference.IPreferenceStore;
25
import org.eclipse.jface.text.*;
48
import org.eclipse.jface.text.Document;
26
import org.eclipse.jface.viewers.*;
49
import org.eclipse.jface.text.ITextOperationTarget;
50
import org.eclipse.jface.text.TextViewer;
51
import org.eclipse.jface.viewers.ColumnWeightData;
52
import org.eclipse.jface.viewers.ISelection;
53
import org.eclipse.jface.viewers.ISelectionChangedListener;
54
import org.eclipse.jface.viewers.IStructuredContentProvider;
55
import org.eclipse.jface.viewers.IStructuredSelection;
56
import org.eclipse.jface.viewers.LabelProvider;
57
import org.eclipse.jface.viewers.SelectionChangedEvent;
58
import org.eclipse.jface.viewers.StructuredSelection;
59
import org.eclipse.jface.viewers.TableLayout;
60
import org.eclipse.jface.viewers.TableViewer;
61
import org.eclipse.jface.viewers.Viewer;
62
import org.eclipse.jface.viewers.ViewerSorter;
27
import org.eclipse.swt.SWT;
63
import org.eclipse.swt.SWT;
28
import org.eclipse.swt.custom.*;
64
import org.eclipse.swt.custom.BusyIndicator;
65
import org.eclipse.swt.custom.SashForm;
66
import org.eclipse.swt.custom.StyledText;
29
import org.eclipse.swt.dnd.DND;
67
import org.eclipse.swt.dnd.DND;
30
import org.eclipse.swt.dnd.Transfer;
68
import org.eclipse.swt.dnd.Transfer;
69
import org.eclipse.swt.events.ControlEvent;
70
import org.eclipse.swt.events.ControlListener;
71
import org.eclipse.swt.events.MouseEvent;
72
import org.eclipse.swt.events.MouseListener;
73
import org.eclipse.swt.events.MouseMoveListener;
74
import org.eclipse.swt.events.PaintEvent;
75
import org.eclipse.swt.events.PaintListener;
76
import org.eclipse.swt.graphics.Color;
77
import org.eclipse.swt.graphics.Cursor;
78
import org.eclipse.swt.graphics.GC;
31
import org.eclipse.swt.graphics.Image;
79
import org.eclipse.swt.graphics.Image;
80
import org.eclipse.swt.graphics.Point;
81
import org.eclipse.swt.graphics.Rectangle;
32
import org.eclipse.swt.layout.GridData;
82
import org.eclipse.swt.layout.GridData;
33
import org.eclipse.swt.widgets.*;
83
import org.eclipse.swt.widgets.Composite;
84
import org.eclipse.swt.widgets.Display;
85
import org.eclipse.swt.widgets.Event;
86
import org.eclipse.swt.widgets.Listener;
87
import org.eclipse.swt.widgets.Menu;
88
import org.eclipse.swt.widgets.Table;
34
import org.eclipse.team.core.RepositoryProvider;
89
import org.eclipse.team.core.RepositoryProvider;
35
import org.eclipse.team.core.TeamException;
90
import org.eclipse.team.core.TeamException;
36
import org.eclipse.team.core.synchronize.SyncInfo;
91
import org.eclipse.team.core.synchronize.SyncInfo;
37
import org.eclipse.team.internal.ccvs.core.*;
92
import org.eclipse.team.internal.ccvs.core.CVSException;
93
import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
94
import org.eclipse.team.internal.ccvs.core.CVSSyncInfo;
95
import org.eclipse.team.internal.ccvs.core.CVSTag;
96
import org.eclipse.team.internal.ccvs.core.ICVSFile;
97
import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
98
import org.eclipse.team.internal.ccvs.core.ICVSResource;
99
import org.eclipse.team.internal.ccvs.core.ILogEntry;
38
import org.eclipse.team.internal.ccvs.core.client.Command;
100
import org.eclipse.team.internal.ccvs.core.client.Command;
39
import org.eclipse.team.internal.ccvs.core.client.Update;
101
import org.eclipse.team.internal.ccvs.core.client.Update;
40
import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
102
import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
41
import org.eclipse.team.internal.ccvs.ui.actions.*;
103
import org.eclipse.team.internal.ccvs.ui.actions.CVSAction;
104
import org.eclipse.team.internal.ccvs.ui.actions.MoveRemoteTagAction;
105
import org.eclipse.team.internal.ccvs.ui.actions.OpenLogEntryAction;
42
import org.eclipse.team.internal.ccvs.ui.operations.UpdateOperation;
106
import org.eclipse.team.internal.ccvs.ui.operations.UpdateOperation;
43
import org.eclipse.team.internal.ui.Utils;
107
import org.eclipse.team.internal.ui.Utils;
44
import org.eclipse.team.ui.synchronize.SyncInfoCompareInput;
108
import org.eclipse.team.ui.synchronize.SyncInfoCompareInput;
45
import org.eclipse.ui.*;
109
import org.eclipse.ui.IActionBars;
110
import org.eclipse.ui.IActionDelegate;
111
import org.eclipse.ui.IEditorInput;
112
import org.eclipse.ui.IEditorPart;
113
import org.eclipse.ui.IFileEditorInput;
114
import org.eclipse.ui.IPartListener;
115
import org.eclipse.ui.IPartListener2;
116
import org.eclipse.ui.IReusableEditor;
117
import org.eclipse.ui.IWorkbenchActionConstants;
118
import org.eclipse.ui.IWorkbenchPage;
119
import org.eclipse.ui.IWorkbenchPart;
120
import org.eclipse.ui.IWorkbenchPartReference;
121
import org.eclipse.ui.PartInitException;
122
import org.eclipse.ui.PlatformUI;
46
import org.eclipse.ui.actions.WorkspaceModifyOperation;
123
import org.eclipse.ui.actions.WorkspaceModifyOperation;
47
import org.eclipse.ui.help.WorkbenchHelp;
124
import org.eclipse.ui.help.WorkbenchHelp;
48
import org.eclipse.ui.part.ResourceTransfer;
125
import org.eclipse.ui.part.ResourceTransfer;
Lines 62-68 Link Here
62
	private TableViewer tableViewer;
139
	private TableViewer tableViewer;
63
	private TextViewer textViewer;
140
	private TextViewer textViewer;
64
	private TableViewer tagViewer;
141
	private TableViewer tagViewer;
65
	
142
	private StyledText text;
143
	private HashMap map = new HashMap();
144
	private int cursorStatus = 0;
145
	private String bugNum;
66
	private OpenLogEntryAction openAction;
146
	private OpenLogEntryAction openAction;
67
	private IAction toggleTextAction;
147
	private IAction toggleTextAction;
68
	private IAction toggleListAction;
148
	private IAction toggleListAction;
Lines 89-95 Link Here
89
	
169
	
90
	private boolean shutdown = false;
170
	private boolean shutdown = false;
91
	
171
	
172
	private static final String bugPattern = "[bB]ug [0-9]+";
92
	public static final String VIEW_ID = "org.eclipse.team.ccvs.ui.HistoryView"; //$NON-NLS-1$
173
	public static final String VIEW_ID = "org.eclipse.team.ccvs.ui.HistoryView"; //$NON-NLS-1$
174
	private String link = "https://bugs.eclipse.org/bugs/show_bug.cgi?id=";
93
	
175
	
94
	private IPartListener partListener = new IPartListener() {
176
	private IPartListener partListener = new IPartListener() {
95
		public void partActivated(IWorkbenchPart part) {
177
		public void partActivated(IWorkbenchPart part) {
Lines 160-166 Link Here
160
				return e.getStatus();
242
				return e.getStatus();
161
			}
243
			}
162
		}
244
		}
163
	};
245
	}
164
	
246
	
165
	/**
247
	/**
166
	 * Adds the action contributions for this view.
248
	 * Adds the action contributions for this view.
Lines 346-354 Link Here
346
				fillTextMenu(menuMgr);
428
				fillTextMenu(menuMgr);
347
			}
429
			}
348
		});
430
		});
349
		StyledText text = textViewer.getTextWidget();
431
		text = textViewer.getTextWidget();
350
		menu = menuMgr.createContextMenu(text);
432
		menu = menuMgr.createContextMenu(text);
351
		text.setMenu(menu);
433
		text.setMenu(menu);
434
		text.addControlListener( new ControlListener(){
435
			public void controlMoved(ControlEvent e) {
436
//				text.setWordWrap(true);
437
//				extractBugPatterns(text.getText());
438
			}
439
440
			public void controlResized(ControlEvent e) {
441
				boolean b = text.getWordWrap();
442
				text.setWordWrap(true);
443
				extractBugPatterns(text.getText());
444
			}
445
			
446
		});
447
		text.addPaintListener(new PaintListener() {
448
			public void paintControl(PaintEvent e) {
449
				for (Iterator it = map.keySet().iterator(); it.hasNext();) {
450
					Rectangle rect = (Rectangle) it.next();
451
					GC gc = new GC(text);					
452
					Color preClick = text.getDisplay().getSystemColor(SWT.COLOR_BLUE);
453
					gc.setForeground(preClick);
454
					int lineHeight = text.getLineHeight();
455
					gc.drawLine(rect.x, rect.y + lineHeight, rect.x + rect.width, rect.y + lineHeight);
456
					gc.dispose();
457
				}
458
			}
459
		});	
460
		text.addMouseMoveListener(new MouseMoveListener(){
461
			public void mouseMove(MouseEvent e){
462
				handleMouseMove(e);
463
			}
464
		});
465
		text.addMouseListener(new MouseListener(){
466
			public void mouseDoubleClick(MouseEvent e) {
467
			}
468
469
			public void mouseDown(MouseEvent e) {
470
				
471
			}
472
473
			public void mouseUp(MouseEvent e) {
474
				if(cursorStatus == 1){
475
					final String url = link + bugNum;
476
					IWorkbenchPage page = CVSUIPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow().getActivePage();
477
					URL address = null;
478
					InputStream input = null;
479
					try {
480
						address = new URL(url);
481
					} catch (MalformedURLException e1) {
482
						//TODO:CVSUIPlugin.log(new CoreException(e1));
483
					}
484
					if(address != null){
485
						try {
486
							URLConnection connection = address.openConnection();
487
							input = connection.getInputStream();
488
						} catch (IOException e2) {
489
							//TODO: CVSUIPlugin.log(e2);
490
						}
491
					}
492
					
493
					BrowserEditorInput ip = new BrowserEditorInput(url);
494
					try {
495
						IEditorPart editor = getSite().getPage().findEditor(ip);
496
						if(editor != null && editor instanceof IReusableEditor) {
497
							((IReusableEditor)editor).setInput(ip);
498
						} else {
499
							getSite().getPage().openEditor(ip, "org.eclipse.team.ccvs.ui.BrowserEditor");
500
						}
501
					} catch (PartInitException e2) {
502
						Utils.handle(e2);
503
					}	
504
				}
505
			}
506
		});
507
	}
508
509
	private void handleMouseMove(MouseEvent e){
510
		Point p = new Point(e.x, e.y);
511
		String bugNumber = getHighlightedBugNum(p);
512
		if(bugNumber != null){
513
			text.setCursor(new Cursor(Display.getCurrent(), SWT.CURSOR_HAND));
514
			text.setToolTipText("Open the bug URL");
515
			cursorStatus = 1;
516
			bugNum = bugNumber;
517
		}else{
518
			text.setCursor(new Cursor(Display.getCurrent(), SWT.CURSOR_IBEAM));
519
			text.setToolTipText(null);
520
			cursorStatus = 0;
521
		}
522
	}
523
	private String getHighlightedBugNum(Point p){
524
		Set squares = map.keySet();
525
		Iterator iter = squares.iterator();
526
		while(iter.hasNext()){
527
			Rectangle  rect = (Rectangle)iter.next();
528
			if(rect.contains(p)){
529
				return (String)map.get(rect);
530
			}
531
		}
532
		return null;
352
	}
533
	}
353
	private void setViewerVisibility() {
534
	private void setViewerVisibility() {
354
		boolean showText = toggleTextAction.isChecked();
535
		boolean showText = toggleTextAction.isChecked();
Lines 459-472 Link Here
459
					return;
640
					return;
460
				}
641
				}
461
				ILogEntry entry = (ILogEntry)ss.getFirstElement();
642
				ILogEntry entry = (ILogEntry)ss.getFirstElement();
462
				textViewer.setDocument(new Document(entry.getComment()));
643
				String comment = entry.getComment();
644
				textViewer.setDocument(new Document(comment));
645
				extractBugPatterns(comment);
463
				tagViewer.setInput(entry.getTags());
646
				tagViewer.setInput(entry.getTags());
464
			}
647
			}
648
465
		});
649
		});
466
		
467
		return viewer;
650
		return viewer;
468
	}
651
	}
469
652
	//highlight the bug patterns and save them to a hash map
653
	private void extractBugPatterns(String comment) {
654
		Rectangle bounds = text.getBounds();
655
		int bx1 = bounds.x;
656
		int by1 = bounds.y;
657
		int bx2 = bx1 + bounds.width;
658
		int by2 = by1 + bounds.height;
659
		map = new HashMap();
660
		Pattern pattern = Pattern.compile(bugPattern);
661
		Matcher matcher = pattern.matcher(comment);
662
		while(matcher.find()){
663
			String match = matcher.group();
664
			bugNum = match.substring(4);
665
			int start = matcher.start();
666
			int end = matcher.end();					
667
			Color preClick = text.getDisplay().getSystemColor(SWT.COLOR_BLUE);
668
			textViewer.setTextColor(preClick, start, end-start, false);
669
			Point ul = text.getLocationAtOffset(start);
670
			Point ur = text.getLocationAtOffset(end);
671
			int lineHeight = text.getLineHeight();
672
			int x1 = ul.x;
673
			int y1 = ul.y;
674
			int x2 = ur.x;
675
			int y2 = ur.y;
676
			Rectangle rect;
677
			//Case 1: Bug pattern is not wrapped by new line 
678
			if(y1 == y2 && x2 > x1){
679
				 rect = new Rectangle(x1,y1,ur.x - x1,lineHeight);
680
				map.put(rect, bugNum);
681
			}
682
			//Case 2: A bug pattern is wrapped into multiple lines, maybe more than 2 lines
683
			if(y1 < y2){
684
				int n = (y2 - y1)/lineHeight;
685
				//the first line
686
				rect = new Rectangle(x1, y1, bx2 - x1,lineHeight);
687
				map.put(rect, bugNum);
688
				//the middle lines
689
				for(int i = 2; i < n; i++){
690
					rect = new Rectangle(bx1, y1 + (i-1) * lineHeight, bx2 - bx1, lineHeight);
691
					map.put(rect, bugNum);
692
				}
693
				//the last line
694
				rect = new Rectangle(bx1, y1 + n * lineHeight, x2 - bx1, lineHeight);
695
				map.put(rect, bugNum);
696
			}
697
			
698
		}
699
	}
470
	private TableViewer createTagTable(Composite parent) {
700
	private TableViewer createTagTable(Composite parent) {
471
		Table table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
701
		Table table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
472
		TableViewer result = new TableViewer(table);
702
		TableViewer result = new TableViewer(table);
(-)src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRemoteAction.java (-1 / +1 lines)
Lines 9-15 Link Here
9
 *     IBM Corporation - initial API and implementation
9
 *     IBM Corporation - initial API and implementation
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.team.internal.ccvs.ui.actions;
11
package org.eclipse.team.internal.ccvs.ui.actions;
12
 
12
13
import java.lang.reflect.InvocationTargetException;
13
import java.lang.reflect.InvocationTargetException;
14
14
15
import org.eclipse.core.resources.IResource;
15
import org.eclipse.core.resources.IResource;
(-)src/org/eclipse/team/internal/ccvs/ui/BrowserEditor.java (+136 lines)
Added Link Here
1
/*
2
 * Created on Apr 28, 2004
3
 *
4
 * To change the template for this generated file go to
5
 * Window - Preferences - Java - Code Generation - Code and Comments
6
 */
7
package org.eclipse.team.internal.ccvs.ui;
8
9
import org.eclipse.core.runtime.IProgressMonitor;
10
import org.eclipse.swt.SWT;
11
import org.eclipse.swt.browser.Browser;
12
import org.eclipse.swt.browser.LocationAdapter;
13
import org.eclipse.swt.browser.LocationEvent;
14
import org.eclipse.swt.events.SelectionAdapter;
15
import org.eclipse.swt.events.SelectionEvent;
16
import org.eclipse.swt.layout.GridData;
17
import org.eclipse.swt.layout.GridLayout;
18
import org.eclipse.swt.widgets.Composite;
19
import org.eclipse.swt.widgets.Text;
20
import org.eclipse.ui.IEditorInput;
21
import org.eclipse.ui.IEditorSite;
22
import org.eclipse.ui.IReusableEditor;
23
import org.eclipse.ui.PartInitException;
24
import org.eclipse.ui.part.EditorPart;
25
26
/**
27
 * @author ZLiu
28
 *
29
 * To change the template for this generated type comment go to
30
 * Window - Preferences - Java - Code Generation - Code and Comments
31
 */
32
public class BrowserEditor extends EditorPart implements IReusableEditor {
33
	private Browser browser;
34
	/* (non-Javadoc)
35
	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
36
	 */
37
	public BrowserEditor(){
38
		super();
39
	}
40
	/* (non-Javadoc)
41
	 * @see org.eclipse.ui.IReusableEditor#setInput(org.eclipse.ui.IEditorInput)
42
	 */
43
	public void setInput(IEditorInput newInput) {
44
		super.setInput(newInput);
45
		IEditorInput input = getEditorInput();
46
		if(browser != null && input instanceof BrowserEditorInput){
47
			String url = ((BrowserEditorInput)input).getURL();
48
			browser.setUrl(url);
49
			setTitle(url);
50
		}
51
	}
52
	public void doSave(IProgressMonitor monitor) {
53
		// TODO Auto-generated method stub
54
	}
55
	/* (non-Javadoc)
56
	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
57
	 */
58
	public void doSaveAs() {
59
		// TODO Auto-generated method stub
60
	}
61
	/* (non-Javadoc)
62
	 * @see org.eclipse.ui.IEditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
63
	 */
64
	public void init(IEditorSite site, IEditorInput input)
65
			throws PartInitException {			
66
		setSite(site);
67
		setInput(input);
68
	}
69
	/* (non-Javadoc)
70
	 * @see org.eclipse.ui.ISaveablePart#isDirty()
71
	 */
72
	public boolean isDirty() {
73
		// TODO Auto-generated method stub
74
		return false;
75
	}
76
	/* (non-Javadoc)
77
	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
78
	 */
79
	public boolean isSaveAsAllowed() {
80
		// TODO Auto-generated method stub
81
		return false;
82
	}
83
	/* (non-Javadoc)
84
	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
85
	 */
86
	public void createPartControl(Composite parent) {
87
		parent.setData(this);		
88
		browser = createBrowser(parent);
89
	}
90
	/* (non-Javadoc)
91
	 * @see org.eclipse.ui.IWorkbenchPart#setFocus()
92
	 */
93
	public void setFocus() {
94
		if (browser != null)
95
			browser.setFocus();
96
	}
97
	private Browser createBrowser(Composite parent) {		
98
		GridLayout gridLayout = new GridLayout();
99
		gridLayout.numColumns = 1;
100
		parent.setLayout(gridLayout);
101
		
102
		final Text location = new Text(parent, SWT.BORDER);
103
		GridData data = new GridData();
104
		data = new GridData();
105
		data.horizontalAlignment = GridData.FILL;
106
		data.grabExcessHorizontalSpace = true;
107
		location.setLayoutData(data);
108
109
		final Browser b = new Browser(parent, SWT.NONE);
110
		data = new GridData();
111
		data.horizontalAlignment = GridData.FILL;
112
		data.verticalAlignment = GridData.FILL;
113
		data.horizontalSpan = 2;
114
		data.grabExcessHorizontalSpace = true;
115
		data.grabExcessVerticalSpace = true;
116
		b.setLayoutData(data);
117
118
		b.addLocationListener(new LocationAdapter() {
119
			public void changed(LocationEvent event) {
120
				location.setText(event.location);
121
			}
122
		});
123
		location.addSelectionListener(new SelectionAdapter() {
124
			public void widgetDefaultSelected(SelectionEvent e) {
125
				b.setUrl(location.getText());
126
			}
127
		});
128
		IEditorInput input = getEditorInput();
129
		if(b != null && input instanceof BrowserEditorInput){
130
			String url = ((BrowserEditorInput)input).getURL();
131
			b.setUrl(url);
132
			setTitle(url);
133
		}
134
		return b;
135
	}
136
}
(-)src/org/eclipse/team/internal/ccvs/ui/BrowserEditorInput.java (+79 lines)
Added Link Here
1
/*
2
 * Created on Apr 28, 2004
3
 *
4
 * To change the template for this generated file go to
5
 * Window - Preferences - Java - Code Generation - Code and Comments
6
 */
7
package org.eclipse.team.internal.ccvs.ui;
8
9
import org.eclipse.jface.resource.ImageDescriptor;
10
import org.eclipse.ui.IEditorInput;
11
import org.eclipse.ui.IPersistableElement;
12
13
/**
14
 * @author ZLiu
15
 *
16
 * To change the template for this generated type comment go to
17
 * Window - Preferences - Java - Code Generation - Code and Comments
18
 */
19
public class BrowserEditorInput implements IEditorInput {
20
	private String url;
21
	
22
	public BrowserEditorInput(String string) {
23
		url = string;
24
	}
25
	/* (non-Javadoc)
26
	 * @see org.eclipse.ui.IEditorInput#exists()
27
	 */
28
	public boolean exists() {
29
		// TODO Auto-generated method stub
30
		return false;
31
	}
32
	/* (non-Javadoc)
33
	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
34
	 */
35
	public ImageDescriptor getImageDescriptor() {
36
		// TODO Auto-generated method stub
37
		return null;
38
	}
39
	/* (non-Javadoc)
40
	 * @see org.eclipse.ui.IEditorInput#getName()
41
	 */
42
	public String getName() {
43
		// TODO Auto-generated method stub
44
		return null;
45
	}
46
	/* (non-Javadoc)
47
	 * @see org.eclipse.ui.IEditorInput#getPersistable()
48
	 */
49
	public IPersistableElement getPersistable() {
50
		// TODO Auto-generated method stub
51
		return null;
52
	}
53
	/* (non-Javadoc)
54
	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
55
	 */
56
	public String getToolTipText() {
57
		// TODO Auto-generated method stub
58
		return null;
59
	}
60
	/* (non-Javadoc)
61
	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
62
	 */
63
	public Object getAdapter(Class adapter) {
64
		// TODO Auto-generated method stub
65
		return null;
66
	}
67
	public String getURL(){
68
		return url;
69
	}
70
	public void setURL(String string){
71
		url = string;
72
	}
73
	/* (non-Javadoc)
74
	 * @see java.lang.Object#equals(java.lang.Object)
75
	 */
76
	public boolean equals(Object obj) {
77
		return obj instanceof BrowserEditorInput;
78
	}
79
}

Return to bug 58646