blob: 58f322c0a5a88d713f7be24fe6aeb2aabbee6135 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM Corporation and others.
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// Contributors:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.library.edit;
import java.util.Comparator;
import org.eclipse.epf.library.edit.util.Comparators;
import org.eclipse.epf.library.edit.util.Comparators.TypeComparator;
import org.eclipse.epf.uma.Guidance;
import org.eclipse.epf.uma.ProcessComponent;
import org.eclipse.epf.uma.ProcessPackage;
import org.eclipse.epf.uma.UmaPackage;
/**
* @author Phong Nguyen Le - Mar 7, 2006
* @since 1.0
*/
public class PresentationContext {
public static final PresentationContext INSTANCE = new PresentationContext();
private boolean showPresentationNames = false;
private Comparator comparator = Comparators.DEFAULT_COMPARATOR;
private Comparator reverseComparator = Comparators.REVERSE_DEFAULT_COMPARATOR;
private Comparator methodElementTypeComparator = Comparators.METHOD_TYPE_COMPARATOR;
private Comparator guidanceTypeComparator = new TypeComparator() {
/* (non-Javadoc)
* @see org.eclipse.epf.library.edit.util.Comparators.TypeComparator#getDefaultComparator()
*/
protected Comparator getDefaultComparator() {
return comparator;
}
protected int getOrderId(Object obj) {
if (obj instanceof Guidance) {
int id = ((Guidance) obj).eClass().getClassifierID();
if (id == UmaPackage.TERM_DEFINITION) {
id = Integer.MAX_VALUE;
}
return id;
}
return -1;
}
};
private Comparator processPackageComparator = new TypeComparator() {
/* (non-Javadoc)
* @see org.eclipse.epf.library.edit.util.Comparators.TypeComparator#getDefaultComparator()
*/
protected Comparator getDefaultComparator() {
return comparator;
}
protected int getOrderId(Object obj) {
if (obj instanceof ProcessComponent) {
return Integer.MAX_VALUE;
} else if (obj instanceof ProcessPackage) {
return 0;
}
return -1;
}
};
private PresentationContext() {
super();
}
public boolean isShowPresentationNames() {
return showPresentationNames;
}
public void setShowPresentationNames(boolean showPresentationNames) {
this.showPresentationNames = showPresentationNames;
comparator = showPresentationNames ? Comparators.PRESENTATION_NAME_COMPARATOR : Comparators.DEFAULT_COMPARATOR;
reverseComparator = showPresentationNames ? Comparators.REVERSE_PRESENTATION_NAME_COMPARATOR : Comparators.REVERSE_DEFAULT_COMPARATOR;
methodElementTypeComparator = showPresentationNames ? Comparators.METHOD_TYPE_PRES_NAME_COMPARATOR : Comparators.METHOD_TYPE_COMPARATOR;
}
public Comparator getComparator() {
return comparator;
}
public Comparator getReverseComparator() {
return reverseComparator;
}
public Comparator getGuidanceTypeComparator() {
return guidanceTypeComparator;
}
public Comparator getProcessPackageComparator() {
return processPackageComparator;
}
public Comparator getMethodElementTypeComparator() {
return methodElementTypeComparator;
}
public Comparator getPresNameComparator() {
return Comparators.PRESENTATION_NAME_COMPARATOR;
}
public Comparator getPresNameReverseComparator() {
return Comparators.REVERSE_PRESENTATION_NAME_COMPARATOR;
}
public Comparator getPresNameMethodElementTypeComparator() {
return Comparators.METHOD_TYPE_PRES_NAME_COMPARATOR;
}
}