KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > team > internal > ccvs > ui > subscriber > ChangeLogModelManager


1 /*******************************************************************************
2  * Copyright (c) 2000, 2004 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Common Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/cpl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - initial API and implementation
10  *******************************************************************************/

11 package org.eclipse.team.internal.ccvs.ui.subscriber;
12
13 import org.eclipse.jface.util.IPropertyChangeListener;
14 import org.eclipse.jface.util.PropertyChangeEvent;
15 import org.eclipse.team.core.synchronize.SyncInfoTree;
16 import org.eclipse.team.internal.ccvs.core.CVSTag;
17 import org.eclipse.team.internal.ui.IPreferenceIds;
18 import org.eclipse.team.internal.ui.TeamUIPlugin;
19 import org.eclipse.team.internal.ui.synchronize.*;
20 import org.eclipse.team.ui.synchronize.ISynchronizePageConfiguration;
21
22 /**
23  * Manager for hierarchical models
24  */

25 public class ChangeLogModelManager extends SynchronizeModelManager implements IPropertyChangeListener {
26         
27     /** support for showing change logs for ranges of tags **/
28     private CVSTag tag1;
29     private CVSTag tag2;
30     
31     public ChangeLogModelManager(ISynchronizePageConfiguration configuration) {
32         this(configuration, null, null);
33     }
34     
35     public ChangeLogModelManager(ISynchronizePageConfiguration configuration, CVSTag tag1, CVSTag tag2) {
36         super(configuration);
37         this.tag1 = tag1;
38         this.tag2 = tag2;
39         configuration.addPropertyChangeListener(this);
40     }
41
42     /* (non-Javadoc)
43      * @see org.eclipse.team.internal.ui.synchronize.SynchronizeModelManager#dispose()
44      */

45     public void dispose() {
46         getConfiguration().removePropertyChangeListener(this);
47         super.dispose();
48     }
49     
50     /* (non-Javadoc)
51      * @see org.eclipse.team.internal.ui.synchronize.SynchronizeModelManager#getSupportedModelProviders()
52      */

53     protected ISynchronizeModelProviderDescriptor[] getSupportedModelProviders() {
54         return new ISynchronizeModelProviderDescriptor[] {
55                 new HierarchicalModelProvider.HierarchicalModelProviderDescriptor(),
56                 new CompressedFoldersModelProvider.CompressedFolderModelProviderDescriptor(),
57                 new ChangeLogModelProvider.ChangeLogModelProviderDescriptor()};
58     }
59     
60     /* (non-Javadoc)
61      * @see org.eclipse.team.internal.ui.synchronize.SynchronizeModelManager#createModelProvider(java.lang.String)
62      */

63     protected ISynchronizeModelProvider createModelProvider(String JavaDoc id) {
64         if(id == null) {
65             if (getShowCompressedFolders()) {
66                 id = CompressedFoldersModelProvider.CompressedFolderModelProviderDescriptor.ID;
67             } else {
68                 id = HierarchicalModelProvider.HierarchicalModelProviderDescriptor.ID;
69             }
70         }
71         if(id.endsWith(CompressedFoldersModelProvider.CompressedFolderModelProviderDescriptor.ID)) {
72             return new CompressedFoldersModelProvider(getConfiguration(), getSyncInfoSet());
73         } else if(id.endsWith(HierarchicalModelProvider.HierarchicalModelProviderDescriptor.ID)) {
74             return new HierarchicalModelProvider(getConfiguration(), getSyncInfoSet());
75         } else {
76                 return new ChangeLogModelProvider(getConfiguration(), getSyncInfoSet(), tag1, tag2);
77         }
78     }
79
80     private SyncInfoTree getSyncInfoSet() {
81         return (SyncInfoTree)getConfiguration().getProperty(ISynchronizePageConfiguration.P_SYNC_INFO_SET);
82     }
83     
84     /**
85      * Return the state of the compressed folder setting.
86      *
87      * @return the state of the compressed folder setting.
88      */

89     private boolean getShowCompressedFolders() {
90         return TeamUIPlugin.getPlugin().getPreferenceStore().getBoolean(IPreferenceIds.SYNCVIEW_COMPRESS_FOLDERS);
91     }
92
93     /* (non-Javadoc)
94      * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
95      */

96     public void propertyChange(PropertyChangeEvent event) {
97     }
98 }
99
Popular Tags