blob: b620b15eb59240a3839bd4c15b0eaaa1e0ba27a2 [file] [log] [blame]
/**
* Copyright (c) 2011, 2019 Mia-Software and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
* Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
*/
package org.eclipse.modisco.facet.custom.ui.internal.exported.dialog;
import java.util.List;
import org.eclipse.modisco.facet.custom.metamodel.v0_2_0.custom.Customization;
import org.eclipse.modisco.facet.custom.ui.internal.exported.exception.IllegalParameterException;
/**
* A dialog to load {@link Customization}s.
*
* @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients.
* @since 0.2.0
*/
public interface ILoadCustomizationsDialog<D> {
/**
* Opens the dialog and blocks until it closes.
*
* @return the dialog's return code
*/
int open();
/** Opens the dialog asynchronously */
void asyncOpen();
/**
* Emulate a press on the OK button
*
* @since 0.2
*/
D pressOk();
/** Selects the given customization in the left "available customizations" pane */
void selectAvailableCustom(Customization customization);
/**
* Moves the customizations selected in the left "available customizations" pane to the right
* "loaded customizations" pane.
*/
void loadSelectedCustoms();
/** Selects the given customization in the right "loaded customizations" pane */
void selectSelectedCustom(Customization customization);
/**
* Moves the customizations selected in the right "loaded customizations" pane to the left
* "available customizations" pane.
*/
void unloadSelectedCustoms();
/**
* This method is used to add a customization on the top of the
* customization stack.
*
* @param customization
* must be one element of the list returned by {@link
* ICustomizationLoaderDialo.getAvailableCustomizations()}
* @throws IllegalParameterException
* when the parameter is not one element of the list returned by
* {@link
* ICustomizationLoaderDialo.getAvailableCustomizations()}
*/
void addCustomization(Customization customization)
throws IllegalParameterException;
/**
* This method is used to add customizations on the top of the customization
* stack.
*
* @param customizations
* must be one element of the list returned by {@link
* ICustomizationLoaderDialo.getAvailableCustomizations()}
* @throws IllegalParameterException
* when one of the element of the parameter list in not one
* element of the list returned by {@link
* ICustomizationLoaderDialo.getAvailableCustomizations()}
*/
void addCustomizations(List<Customization> customizations)
throws IllegalParameterException;
/**
* This method is used to remove a customization from the list.
*
* @param customization
* must be one element of the list returned by {@link
* ICustomizationLoaderDialo.getSelectedCustomizations()}
* @throws IllegalParameterException
* when the parameter is not one element of the list returned by
* {@link ICustomizationLoaderDialo.getSelectedCustomizations()}
*/
void removeCustomization(Customization customization)
throws IllegalParameterException;
/**
* This method is used to remove a list of customization from the list.
*
* @param customizations
* must be one element of the list returned by {@link
* ICustomizationLoaderDialo.getSelectedCustomizations()}
* @throws IllegalParameterException
* when one of the element of the parameter list in not one
* element of the list returned by {@link
* ICustomizationLoaderDialo.getSelectedCustomizations()}
*/
void removeCustomizations(List<Customization> customizations)
throws IllegalParameterException;
/**
* Cancel the dialog
*/
void cancel();
/**
* Validate the dialog
*/
void validate();
/**
* The intersection between getSelectedCustomizations() and
* getAvailableCustomizations') has to be empty.
*
* @return the customizations selected using the dialog.
*/
List<Customization> getSelectedCustomizations();
/**
* The intersection between getSelectedCustomizations() and
* getAvailableCustomizations') has to be empty.
*
* @return the available and not yet selected customizations
*/
List<Customization> getAvailableCustomizations();
/**
* This method is used to push up a customization.
*
* @param customization
* a selected customization.
* @throws IllegalParameterException
* when the parameter in not on element of the list returned by
* getSelectedCustomizations().
*/
void pushUp(Customization customization) throws IllegalParameterException;
/**
* This method is used to push down a customization.
*
* @param customization
* a selected customization.
* @throws IllegalParameterException
* when the parameter in not on element of the list returned by
* getSelectedCustomizations().
*/
void pushDown(Customization customization) throws IllegalParameterException;
}