blob: 70d0dc1fba774b27cec4da434b30aa6ffa38917b [file] [log] [blame]
/*
* Copyright (c) 2011-2013, 2015 Eike Stepper (Berlin, Germany) 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:
* Eike Stepper - initial API and implementation
* Christian W. Damus (CEA LIST) - bug 420528
*/
package org.eclipse.emf.internal.cdo.view;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.util.CDOCommonUtil;
import org.eclipse.emf.cdo.view.CDOView;
import org.eclipse.net4j.util.StringUtil;
import org.eclipse.net4j.util.properties.DefaultPropertyTester;
import org.eclipse.net4j.util.properties.IProperties;
import org.eclipse.net4j.util.properties.Properties;
import org.eclipse.net4j.util.properties.Property;
/**
* @author Eike Stepper
*/
public class ViewProperties extends Properties<CDOView>
{
public static final IProperties<CDOView> INSTANCE = new ViewProperties();
private static final String CATEGORY_VIEW = "View"; //$NON-NLS-1$
private static final String CATEGORY_SESSION = "Session"; //$NON-NLS-1$
private ViewProperties()
{
super(CDOView.class);
add(new Property<CDOView>("open", //$NON-NLS-1$
"Open", "Whether this view is open or not.", CATEGORY_VIEW)
{
@Override
protected Object eval(CDOView view)
{
return !view.isClosed();
}
});
add(new Property<CDOView>("viewID", //$NON-NLS-1$
"ID", "The ID of this view.", CATEGORY_VIEW)
{
@Override
protected Object eval(CDOView view)
{
return view.getViewID();
}
});
add(new Property<CDOView>("branchName") //$NON-NLS-1$
{
@Override
protected Object eval(CDOView view)
{
return view.getBranch().getName();
}
});
add(new Property<CDOView>("branch", //$NON-NLS-1$
"Branch", "The branch of this view.", CATEGORY_VIEW)
{
@Override
protected Object eval(CDOView view)
{
return view.getBranch().getPathName();
}
});
add(new Property<CDOView>("timeStamp", //$NON-NLS-1$
"Time Stamp", "The time stamp of this view.", CATEGORY_VIEW)
{
@Override
protected Object eval(CDOView view)
{
return CDOCommonUtil.formatTimeStamp(view.getTimeStamp());
}
});
add(new Property<CDOView>("lastUpdateTime", //$NON-NLS-1$
"Last Update", "The time stamp of the last passive update.", CATEGORY_VIEW)
{
@Override
protected Object eval(CDOView view)
{
return CDOCommonUtil.formatTimeStamp(view.getLastUpdateTime());
}
});
add(new Property<CDOView>("rootResourcePermission", //$NON-NLS-1$
"Root Resource Permission", "The permission the current user has for the root resource of this view.",
CATEGORY_VIEW)
{
@Override
protected Object eval(CDOView view)
{
return view.getRootResource().cdoPermission();
}
});
add(new Property<CDOView>("readOnly", //$NON-NLS-1$
"Read-Only", "Whether this view is read-only or not.", CATEGORY_VIEW)
{
@Override
protected Object eval(CDOView view)
{
return view.isReadOnly();
}
});
add(new Property<CDOView>("dirty", //$NON-NLS-1$
"Dirty", "Whether this view is dirty or not.", CATEGORY_VIEW)
{
@Override
protected Object eval(CDOView view)
{
return view.isDirty();
}
});
add(new Property<CDOView>("durable", //$NON-NLS-1$
"Durable", "Whether this view is durable or not.", CATEGORY_VIEW)
{
@Override
protected Object eval(CDOView view)
{
return view.getDurableLockingID() != null;
}
});
add(new Property<CDOView>("sessionID", //$NON-NLS-1$
"Session ID", "The ID of the session of this view.", CATEGORY_SESSION)
{
@Override
protected Object eval(CDOView view)
{
return view.getSession().getSessionID();
}
});
add(new Property<CDOView>("userID", //$NON-NLS-1$
"User ID", "The user ID of the session of this view.", CATEGORY_SESSION)
{
@Override
protected Object eval(CDOView view)
{
return view.getSession().getUserID();
}
});
add(new Property<CDOView>("userAuthenticated")
{
@Override
protected Object eval(CDOView view)
{
return !StringUtil.isEmpty(view.getSession().getUserID());
}
});
add(new Property<CDOView>("historical") //$NON-NLS-1$
{
@Override
protected Object eval(CDOView view)
{
return view.getTimeStamp() != CDOBranchPoint.UNSPECIFIED_DATE;
}
});
}
public static void main(String[] args)
{
new Tester().dumpContributionMarkup();
}
/**
* @author Eike Stepper
*/
public static final class Tester extends DefaultPropertyTester<CDOView>
{
public static final String NAMESPACE = "org.eclipse.emf.cdo.view";
public Tester()
{
super(NAMESPACE, INSTANCE);
}
}
}