| /* |
| * Copyright (c) 2008-2012 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: |
| * Victor Roldan Betancort - initial API and implementation |
| * Eike Stepper - maintenance |
| */ |
| package org.eclipse.emf.cdo.internal.ui.filters; |
| |
| import org.eclipse.emf.cdo.CDOState; |
| import org.eclipse.emf.cdo.internal.ui.messages.Messages; |
| import org.eclipse.emf.cdo.util.CDOUtil; |
| |
| import org.eclipse.emf.ecore.EObject; |
| |
| import org.eclipse.jface.viewers.StructuredViewer; |
| import org.eclipse.jface.viewers.Viewer; |
| |
| import java.text.MessageFormat; |
| |
| /** |
| * @author Victor Roldan Betancort |
| */ |
| public class CDOStateFilter extends CDOObjectFilter |
| { |
| private static final String STATE_CONFLICT = Messages.getString("CDOStateFilter.0"); //$NON-NLS-1$ |
| |
| private static final String STATE_TRANSIENT = Messages.getString("CDOStateFilter.1"); //$NON-NLS-1$ |
| |
| private static final String STATE_NEW = Messages.getString("CDOStateFilter.2"); //$NON-NLS-1$ |
| |
| private static final String STATE_CLEAN = Messages.getString("CDOStateFilter.3"); //$NON-NLS-1$ |
| |
| private static final String STATE_DIRTY = Messages.getString("CDOStateFilter.4"); //$NON-NLS-1$ |
| |
| private CDOState stateFilter; |
| |
| public CDOStateFilter(StructuredViewer viewer) |
| { |
| super(viewer); |
| } |
| |
| @Override |
| protected void parsePattern(String pattern) |
| { |
| if (pattern.compareToIgnoreCase(STATE_DIRTY) == 0) |
| { |
| stateFilter = CDOState.DIRTY; |
| } |
| else if (pattern.compareToIgnoreCase(STATE_CLEAN) == 0) |
| { |
| stateFilter = CDOState.CLEAN; |
| } |
| else if (pattern.compareToIgnoreCase(STATE_NEW) == 0) |
| { |
| stateFilter = CDOState.NEW; |
| } |
| else if (pattern.compareToIgnoreCase(STATE_TRANSIENT) == 0) |
| { |
| stateFilter = CDOState.TRANSIENT; |
| } |
| else if (pattern.compareToIgnoreCase(STATE_CONFLICT) == 0) |
| { |
| stateFilter = CDOState.CONFLICT; |
| } |
| else |
| { |
| stateFilter = null; |
| } |
| } |
| |
| @Override |
| public boolean select(Viewer viewer, Object parentElement, Object element) |
| { |
| if (stateFilter != null) |
| { |
| return CDOUtil.getCDOObject((EObject)element).cdoState() == stateFilter; |
| } |
| |
| return true; |
| } |
| |
| @Override |
| public String getDescription() |
| { |
| return MessageFormat.format(Messages.getString("CDOStateFilter.5"), STATE_DIRTY, STATE_CLEAN, //$NON-NLS-1$ |
| STATE_TRANSIENT, STATE_NEW, STATE_CONFLICT); |
| } |
| |
| @Override |
| public String getTitle() |
| { |
| return Messages.getString("CDOStateFilter.6"); //$NON-NLS-1$ |
| } |
| } |