Skip to content

Commit

Permalink
Use decorators defined in the preference page.
Browse files Browse the repository at this point in the history
  • Loading branch information
angvoz committed Jun 30, 2012
1 parent 70e184f commit 038748d
Show file tree
Hide file tree
Showing 5 changed files with 92 additions and 92 deletions.
10 changes: 5 additions & 5 deletions VersionTree/src/net/sf/versiontree/VersionTreePlugin.java
Expand Up @@ -54,11 +54,11 @@ public class VersionTreePlugin extends AbstractUIPlugin {
public static final String PREF_REGEX_MERGE_FROM = "RegexMergeFrom"; //$NON-NLS-1$
public static final String PREF_REGEX_CLOSED = "RegexClosed"; //$NON-NLS-1$

public static final String TAG_DEFAULT_REGEX_LOCKED = "tag_(.*)_LOCKED_.*";
public static final String TAG_DEFAULT_REGEX_REQUEST = "tag_(.*)_REQUEST_.*";
public static final String TAG_DEFAULT_REGEX_MERGE_TO = "tag_(.*)_MERGE-TO_(.*)";
public static final String TAG_DEFAULT_REGEX_MERGE_FROM = "tag_(.*)_MERGE-FROM_(.*)";
public static final String TAG_DEFAULT_REGEX_CLOSED = "tag_(.*)_CLOSED";
private static final String TAG_DEFAULT_REGEX_LOCKED = "tag_(.*)_LOCKED_.*";
private static final String TAG_DEFAULT_REGEX_REQUEST = "tag_(.*)_REQUEST_.*";
private static final String TAG_DEFAULT_REGEX_MERGE_TO = "tag_(.*)_MERGE-TO_(.*)";
private static final String TAG_DEFAULT_REGEX_MERGE_FROM = "tag_(.*)_MERGE-FROM_(.*)";
private static final String TAG_DEFAULT_REGEX_CLOSED = "tag_(.*)_CLOSED";


/**
Expand Down
95 changes: 46 additions & 49 deletions VersionTree/src/net/sf/versiontree/data/BranchTree.java
@@ -1,10 +1,10 @@
/*******************************************************************************
* Copyright (c) 2003 Jan Karstens, Andr Langhorst.
* All rights reserved. This program and the accompanying materials
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
*
* Contributors:
* Andr Langhorst <andre@masse.de> - initial implementation
* Jan Karstens <jan.karstens@web.de> - extensions
Expand All @@ -21,11 +21,12 @@

import net.sf.versiontree.VersionTreePlugin;

import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.team.internal.ccvs.core.CVSTag;
import org.eclipse.team.internal.ccvs.core.ILogEntry;

/**
* Data structure for walking version trees
* Data structure for walking version trees
* @author Andre */
public class BranchTree {
private int numberOfBranches = 0;
Expand All @@ -37,18 +38,16 @@ public class BranchTree {
private HashMap<String, IRevision> revisions;
private HashMap<String,IRevision> alltags;

private static final Pattern PATTERN_MERGE_TO = Pattern.compile(VersionTreePlugin.TAG_DEFAULT_REGEX_MERGE_TO);

public HashMap<String, IRevision> getAlltags() {
return alltags;
}

public boolean isEmpty() {
return numberOfBranches == 0;
}

/**
* Sets up all data structures from CVS Logs
* Sets up all data structures from CVS Logs
*/
public BranchTree(ILogEntry[] logs, String selectedRevision) {
// no logs, empty tree
Expand All @@ -66,43 +65,41 @@ public BranchTree(ILogEntry[] logs, String selectedRevision) {
// build complete tree structure
buildCompleteTreeStructure();
walk(head);

}
/**
* Fill merge points information

/**
* Fill merge points information
*/
public void walk(
ITreeElement parameterElement) {
public void walk(ITreeElement parameterElement) {
if (parameterElement instanceof IRevision) {
IPreferenceStore store = VersionTreePlugin.getDefault().getPreferenceStore();
Pattern patternMergeTo = Pattern.compile(store.getString(VersionTreePlugin.PREF_REGEX_MERGE_TO));

IRevision revision = (IRevision) parameterElement;
CVSTag[] tags = revision.getLogEntry().getTags();
for (int i = 0; i < tags.length; i++) {
CVSTag tag = tags[i];
Matcher matcher = PATTERN_MERGE_TO.matcher(tag.getName());
while ( matcher.find() ) {
String branchFrom = matcher.group(1);
String branchTo = matcher.group(2);
String mergeFromTag = "tag_"+branchTo+"_MERGE-FROM_"+branchFrom;
IRevision revisionTo = alltags.get(mergeFromTag);
if ( revisionTo != null &&
revisionTo != parameterElement )
{
if (revision.getRevision().length() > revisionTo.getRevision().length()) {
MergePoint mergePointTo = new MergePoint(branchTo, revisionTo);
MergePoint mergePointFrom = new MergePoint(branchFrom, revision);
revision.addMergeToRevision(mergePointTo);
revisionTo.addMergeFromRevision(mergePointFrom);
}
}
}
Matcher matcher = patternMergeTo.matcher(tag.getName());
while (matcher.find()) {
String branchFrom = matcher.group(1);
String branchTo = matcher.group(2);
String mergeFromTag = "tag_"+branchTo+"_MERGE-FROM_"+branchFrom;
IRevision revisionTo = alltags.get(mergeFromTag);
if (revisionTo != null && revisionTo != parameterElement) {
if (revision.getRevision().length() > revisionTo.getRevision().length()) {
MergePoint mergePointTo = new MergePoint(branchTo, revisionTo);
MergePoint mergePointFrom = new MergePoint(branchFrom, revision);
revision.addMergeToRevision(mergePointTo);
revisionTo.addMergeFromRevision(mergePointFrom);
}
}
}
}
}

for (Iterator<ITreeElement> iter = parameterElement.getChildren().listIterator();
iter.hasNext();
) {
ITreeElement nextElement = (ITreeElement) iter.next();
for (Iterator<ITreeElement> iter = parameterElement.getChildren().listIterator(); iter.hasNext();) {
ITreeElement nextElement = iter.next();
walk(nextElement);
}
}
Expand Down Expand Up @@ -133,11 +130,11 @@ private void setUpHashMaps(ILogEntry[] logs, String selectedRevision) {
currentRevision);
createBranches(logEntry);
}

// connect revisions to branches
headBranch.addChild(rootRevision);
for (Iterator<IRevision> iter = revisions.values().iterator(); iter.hasNext();) {
IRevision currentRevision = (IRevision) iter.next();
IRevision currentRevision = iter.next();
String branchPrefix = currentRevision.getBranchPrefix();
BranchData branch = (BranchData) branches.get(branchPrefix);
if (branch == null) {
Expand All @@ -147,15 +144,15 @@ private void setUpHashMaps(ILogEntry[] logs, String selectedRevision) {
// no branch tag! create adhoc branch
branch = createBranch(branchPrefix, IBranch.N_A_BRANCH);
String parentPrefix = branchPrefix.substring(0,branchPrefix.lastIndexOf(".",branchPrefix.lastIndexOf(".")-1));
IRevision branchParent = (IRevision) revisions.get(parentPrefix);
IRevision branchParent = revisions.get(parentPrefix);
branchParent.addChild(branch);
}
}
// get/create the branch and add revision
branch.addRevisionData(currentRevision);
}
}

/**
* Creates all branches for the given log entry (including
* empty branches).
Expand All @@ -169,7 +166,7 @@ private void createBranches(ILogEntry logEntry) {
}
}
}

private BranchData createBranch(String branchPrefix, String name) {
BranchData branch = new BranchData();
branch.setBranchPrefix(branchPrefix);
Expand All @@ -180,7 +177,7 @@ private BranchData createBranch(String branchPrefix, String name) {

private void buildCompleteTreeStructure() {
for (Iterator<IBranch> iter = branches.values().iterator(); iter.hasNext();) {
IBranch outerBranch = (IBranch) iter.next();
IBranch outerBranch = iter.next();

// for all revisions of a branch in order
List<IRevision> revs = outerBranch.getRevisions();
Expand All @@ -189,7 +186,7 @@ private void buildCompleteTreeStructure() {
Iterator<IRevision> innerIter = revs.iterator();
IRevision prev = null;
while (innerIter.hasNext()) {
IRevision innerRevision = (IRevision) innerIter.next();
IRevision innerRevision = innerIter.next();
// ... the next revision is a child
if (prev != null)
prev.addChild(innerRevision);
Expand All @@ -198,7 +195,7 @@ private void buildCompleteTreeStructure() {
findBranchesForRevision(innerRevision).iterator();
innerBranches.hasNext();
) {
IBranch branchChild = (IBranch) innerBranches.next();
IBranch branchChild = innerBranches.next();
innerRevision.addChild(branchChild);
branchChild.setParent(innerRevision);
}
Expand All @@ -216,7 +213,7 @@ private void buildCompleteTreeStructure() {

/**
* TODO: wrong algorithm because branch can be removed.
*
*
* @param rev
* @return
*/
Expand All @@ -231,17 +228,17 @@ public List<IBranch> findBranchesForRevision(IRevision rev) {
return sortedBranches;
}

/**
/**
* the active revision currently has a "*" currently displayed
*/
private void ifIsActiveRevisionInIDErememberIt(
String selectedRevision,
IRevision currentRevision) {
if (currentRevision.getRevision().equals(selectedRevision))
currentRevision.setState(IRevision.STATE_CURRENT);
currentRevision.setState(ITreeElement.STATE_CURRENT);
}
/**

/**
* the root revision is recognized by its revision number
*/
private void ifIsRootSetRoot(
Expand All @@ -258,8 +255,8 @@ private void ifIsRootSetRoot(
}
}

/**
* gets head Branch for decension
/**
* gets head Branch for decension
*/
public IBranch getHeadBranch() {
return headBranch;
Expand Down
15 changes: 9 additions & 6 deletions VersionTree/src/net/sf/versiontree/ui/Revision.java
Expand Up @@ -16,6 +16,7 @@

import net.sf.versiontree.VersionTreePlugin;
import net.sf.versiontree.data.IRevision;
import net.sf.versiontree.data.ITreeElement;
import net.sf.versiontree.data.MergePoint;

import org.eclipse.jface.preference.IPreferenceStore;
Expand Down Expand Up @@ -118,6 +119,8 @@ protected void paintControl(PaintEvent e) {

// draw version tag icon if revision is tagged
if (revisionData.hasVersionTags()) {
IPreferenceStore store = VersionTreePlugin.getDefault().getPreferenceStore();

boolean isHeadRevision = revisionData.getRevision().matches("\\d*\\.\\d*");
boolean isLocked = false;
boolean isMerged = false;
Expand All @@ -126,21 +129,21 @@ protected void paintControl(PaintEvent e) {
boolean isClosed = false;
List<String> tags = revisionData.getTags();
for (String tag : tags) {
if (tag.matches(VersionTreePlugin.TAG_DEFAULT_REGEX_LOCKED)) {
if (tag.matches(store.getString(VersionTreePlugin.PREF_REGEX_LOCKED))) {
isLocked = true;
// "locked" has preference over other icons
break;
}
if (tag.matches(VersionTreePlugin.TAG_DEFAULT_REGEX_REQUEST)) {
if (tag.matches(store.getString(VersionTreePlugin.PREF_REGEX_REQUEST))) {
isBeingMerged = true;
}
if (tag.matches(VersionTreePlugin.TAG_DEFAULT_REGEX_CLOSED)) {
if (tag.matches(store.getString(VersionTreePlugin.PREF_REGEX_CLOSED))) {
isClosed = true;
}
if (tag.matches(VersionTreePlugin.TAG_DEFAULT_REGEX_MERGE_TO)) {
if (tag.matches(store.getString(VersionTreePlugin.PREF_REGEX_MERGE_TO))) {
isMerged = true;
}
if (tag.matches(VersionTreePlugin.TAG_DEFAULT_REGEX_MERGE_FROM)) {
if (tag.matches(store.getString(VersionTreePlugin.PREF_REGEX_MERGE_FROM))) {
isPropagated = true;
}
}
Expand Down Expand Up @@ -202,7 +205,7 @@ public String getRevision() {
*/
private String getRevisionString() {
String revisionNumber = revisionData.getRevision();
if ((revisionData.getState() & IRevision.STATE_CURRENT) > 0)
if ((revisionData.getState() & ITreeElement.STATE_CURRENT) > 0)
revisionNumber = "*" + revisionNumber; //$NON-NLS-1$
if (revisionData.getLogEntry().isDeletion())
revisionNumber += " ("+revisionData.getLogEntry().getState()+")";
Expand Down

0 comments on commit 038748d

Please sign in to comment.