/******************************************************************************* * Copyright (c) 2012-2017 Codenvy, S.A. * 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: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.plugin.debugger.ide.configuration; import com.google.gwt.user.client.ui.AcceptsOneWidget; import org.eclipse.che.commons.annotation.Nullable; import org.eclipse.che.ide.api.mvp.View; import org.eclipse.che.ide.api.debug.DebugConfiguration; import org.eclipse.che.ide.api.debug.DebugConfigurationType; import java.util.List; import java.util.Map; /** * The view of {@link EditDebugConfigurationsPresenter}. * * @author Artem Zatsarynnyi */ public interface EditDebugConfigurationsView extends View<EditDebugConfigurationsView.ActionDelegate> { /** Show view. */ void show(); /** Close view. */ void close(); /** Select next configuration. */ void selectNextItem(); /** Returns the component used for displaying debug configuration page. */ AcceptsOneWidget getDebugConfigurationPageContainer(); /** Clear debug configuration page panel. */ void clearDebugConfigurationPageContainer(); /** * Sets debug configuration types and debug configurations to display. * * @param categories * available debug configuration types and list of configurations */ void setData(Map<DebugConfigurationType, List<DebugConfiguration>> categories); /** Returns configuration name. */ String getConfigurationName(); /** Sets configuration name. */ void setConfigurationName(String name); /** Sets enabled state of the 'Cancel' button. */ void setCancelButtonState(boolean enabled); /** Sets enabled state of the 'Save' button. */ void setSaveButtonState(boolean enabled); /** Sets enabled state of the 'Debug' button. */ void setDebugButtonState(boolean enabled); /** Sets enabled state of the filter input field. */ void setFilterState(boolean enabled); /** Returns the selected configuration type or type of the selected debug configuration. */ @Nullable DebugConfigurationType getSelectedConfigurationType(); /** Select the specified debug configuration. */ void setSelectedConfiguration(DebugConfiguration config); /** Returns the selected debug configuration. */ @Nullable DebugConfiguration getSelectedConfiguration(); /** Focus the 'Close' button. */ void focusCloseButton(); /** Returns {@code true} if 'Cancel' button is focused and {@code false} - otherwise. */ boolean isCancelButtonFocused(); /** Returns {@code true} if 'Close' button is focused and {@code false} - otherwise. */ boolean isCloseButtonFocused(); /** Action handler for the view actions/controls. */ interface ActionDelegate { /** Called when 'Ok' button is clicked. */ void onCloseClicked(); /** Called when 'Apply' button is clicked. */ void onSaveClicked(); /** Called when 'Cancel' button is clicked. */ void onCancelClicked(); /** Called when 'Debug' button is clicked. */ void onDebugClicked(); /** Called when 'Add' button is clicked. */ void onAddClicked(); /** Called when 'Duplicate' button is clicked. */ void onDuplicateClicked(); /** Called when 'Remove' button is clicked. */ void onRemoveClicked(DebugConfiguration selectedConfiguration); /** Called when 'Enter' key is pressed. */ void onEnterPressed(); /** * Called when some debug configuration is selected. * * @param configuration * selected configuration */ void onConfigurationSelected(DebugConfiguration configuration); /** Called when configuration's name has been changed. */ void onNameChanged(); } }