/*******************************************************************************
* Copyright (c) 2012-2015 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.ide.api.parts;
import org.eclipse.che.ide.api.mvp.View;
import org.eclipse.che.ide.collections.Array;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.dom.client.HasMouseDownHandlers;
import com.google.gwt.event.logical.shared.HasCloseHandlers;
import com.google.gwt.user.client.ui.IsWidget;
import org.vectomatic.dom.svg.ui.SVGImage;
import static com.google.gwt.user.client.ui.InsertPanel.ForIsWidget;
/** PartStack View interface */
public interface PartStackView extends View<PartStackView.ActionDelegate> {
public enum TabPosition {
BELOW, LEFT, RIGHT
}
/** Tab which can be clicked and closed */
public interface TabItem extends HasCloseHandlers<PartStackView.TabItem>, HasClickHandlers, HasMouseDownHandlers {
}
/** Add Tab */
public PartStackView.TabItem addTab(SVGImage icon, String title, String toolTip, IsWidget widget, boolean closable);
/** Remove Tab */
public void removeTab(int index);
/** Set Active Tab */
public void setActiveTab(int index);
/** Set new Tabs positions */
public void setTabpositions(Array<Integer> partPositions);
/** Get Content Panel */
public ForIsWidget getContentPanel();
/** Set PartStack focused */
public void setFocus(boolean focused);
/** Update Tab */
public void updateTabItem(int index, SVGImage icon, String title, String toolTip, IsWidget widget);
/** Handles Focus Request Event. It is generated, when user clicks a stack anywhere */
public interface ActionDelegate {
/** PartStack is being clicked and requests Focus */
void onRequestFocus();
}
}