| /******************************************************************************* |
| * Copyright (c) 2005, 2008 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 API and implementation |
| *******************************************************************************/ |
| package org.eclipse.ltk.core.refactoring; |
| |
| import org.eclipse.core.runtime.Assert; |
| |
| import org.eclipse.text.edits.TextEdit; |
| import org.eclipse.text.edits.TextEditGroup; |
| |
| import org.eclipse.jface.text.IRegion; |
| |
| /** |
| * This class is a wrapper around a {@link TextEditGroup TextEditGroup} |
| * adding support for marking a group as active and inactive. |
| * <p> |
| * Note: this class is not intended to be extended by clients. |
| * </p> |
| * |
| * @see TextEditGroup |
| * |
| * @since 3.2 |
| * |
| * @noextend This class is not intended to be subclassed by clients. |
| */ |
| public class TextEditBasedChangeGroup { |
| |
| /** The associated change */ |
| private TextEditBasedChange fChange; |
| private boolean fIsEnabled; |
| private TextEditGroup fTextEditGroup; |
| |
| /** |
| * Creates new <code>TextEditBasedChangeGroup</code> for the given <code> |
| * TextEditBasedChange</code> and <code>TextEditGroup</code>. |
| * |
| * @param change the change owning this text edit change group |
| * @param group the underlying text edit group |
| */ |
| public TextEditBasedChangeGroup(TextEditBasedChange change, TextEditGroup group) { |
| Assert.isNotNull(change); |
| Assert.isNotNull(group); |
| fChange= change; |
| fIsEnabled= true; |
| fTextEditGroup= group; |
| } |
| |
| /** |
| * Returns the text edit change this group belongs to. |
| * |
| * @return the text edit change this group belongs to |
| */ |
| public TextEditBasedChange getTextEditChange() { |
| return fChange; |
| } |
| |
| /** |
| * Returns the groups's name by forwarding the method |
| * to the underlying text edit group. |
| * |
| * @return the group's name |
| */ |
| public String getName() { |
| return fTextEditGroup.getName(); |
| } |
| |
| /** |
| * Returns the region covered by the underlying |
| * text edit group. |
| * |
| * @return the region covered by the underlying |
| * text edit group |
| */ |
| public IRegion getRegion() { |
| return fTextEditGroup.getRegion(); |
| } |
| |
| /** |
| * Returns the underlying text edit group. |
| * |
| * @return the underlying text edit group |
| */ |
| public TextEditGroup getTextEditGroup() { |
| return fTextEditGroup; |
| } |
| |
| /** |
| * Returns the text edits managed by the underlying |
| * text edit group. |
| * |
| * @return the text edits managed by the underlying |
| * text edit group |
| */ |
| public TextEdit[] getTextEdits() { |
| return fTextEditGroup.getTextEdits(); |
| } |
| |
| /** |
| * Returns whether the group is enabled or not. |
| * |
| * @return <code>true</code> if the group is marked as |
| * enabled; <code>false</code> otherwise |
| */ |
| public boolean isEnabled() { |
| return fIsEnabled; |
| } |
| |
| /** |
| * Marks the group as enabled or disabled. If a group |
| * is marked as disabled the text edits managed by the |
| * underlying text edit group aren't executed when |
| * performing the text change that owns this group. |
| * |
| * @param enabled <code>true</code> to mark this group |
| * as enabled, <code>false</code> to mark it as disabled |
| */ |
| public void setEnabled(boolean enabled) { |
| fIsEnabled= enabled; |
| } |
| |
| /** |
| * Returns the set of group categories. |
| * |
| * @return the group categories of this change group |
| */ |
| public GroupCategorySet getGroupCategorySet() { |
| if (fTextEditGroup instanceof CategorizedTextEditGroup) { |
| return ((CategorizedTextEditGroup)fTextEditGroup).getGroupCategorySet(); |
| } |
| return GroupCategorySet.NONE; |
| } |
| } |