/******************************************************************************* * Copyright (c) 2004, 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 API and implementation *******************************************************************************/ package org.eclipse.debug.ui.memory; import org.eclipse.debug.core.model.IMemoryBlock; import org.eclipse.jface.util.IPropertyChangeListener; /** * Provides facilities related to the synchronization of memory renderings. * <p> * Clients hosting renderings may implement this interface. * </p> * @since 3.1 */ public interface IMemoryRenderingSynchronizationService { /** * Adds a listener for property changes notification for the specified properties. * Specifying <code>null</code> indicates that the listener is interested in all * properties. If an identical listener is already registered, the properties * it is registered to listen for are updated. * * @param listener a property change listener * @param properties properties the listener is interested in, or <code>null</code> * to indicate all properties. */ public void addPropertyChangeListener(IPropertyChangeListener listener, String[] properties); /** * Removes the given listener for property change notification. * Has no effect if the identical listener is not registered. * * @param listener a property change listener */ public void removePropertyChangeListener(IPropertyChangeListener listener); /** * Returns the current value of the specified property for the given memory block, or * <code>null</code> if none. * * @param block memory block for which a property is requested * @param property the name of the property * @return the property value or <code>null</code> */ public Object getProperty(IMemoryBlock block, String property); /** * Sets the rendering currently providing sychronization information for * this synchronization service, or <code>null</code> if none. * * @param rendering active rendering providing synchronization information or * <code>null</code> */ public void setSynchronizationProvider(IMemoryRendering rendering); /** * Returns the rendering currently providing synchronization information for * this synchronization service, or <code>null</code if none. * * @return rendering providing synchronization information or <code>null</code> */ public IMemoryRendering getSynchronizationProvider(); }