14b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye/*******************************************************************************
24b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * Copyright (c) 2011 Google, Inc.
34b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * All rights reserved. This program and the accompanying materials
44b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * are made available under the terms of the Eclipse Public License v1.0
54b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * which accompanies this distribution, and is available at
64b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * http://www.eclipse.org/legal/epl-v10.html
74b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye *
84b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * Contributors:
94b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye *    Google, Inc. - initial API and implementation
104b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye *******************************************************************************/
114b1a9d7baa71df312585022c22e8025fafaba95aTor Norbyepackage org.eclipse.wb.internal.core.editor.structure;
124b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
134b1a9d7baa71df312585022c22e8025fafaba95aTor Norbyeimport org.eclipse.jface.action.IToolBarManager;
144b1a9d7baa71df312585022c22e8025fafaba95aTor Norbyeimport org.eclipse.swt.widgets.Composite;
154b1a9d7baa71df312585022c22e8025fafaba95aTor Norbyeimport org.eclipse.swt.widgets.Control;
164b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
174b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye/**
184b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * View-like page.
194b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye *
204b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * @author scheglov_ke
214b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * @coverage core.editor.structure
224b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye */
234b1a9d7baa71df312585022c22e8025fafaba95aTor Norbyepublic interface IPage {
244b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  /**
254b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * Creates the {@link Control} for this page.
264b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   */
274b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  void createControl(Composite parent);
284b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
294b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  /**
304b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * Disposes this page.
314b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * <p>
324b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * This is the last method called on the {@link IPage}. Implementors should clean up any resources
334b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * associated with the page.
344b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * <p>
354b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * Note that there is no guarantee that {@link #createControl(Composite)} has been called, so the
364b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * control may never have been created.
374b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   */
384b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  void dispose();
394b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
404b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  /**
414b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * @return the {@link Control} of this page, may be <code>null</code>.
424b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   */
434b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  Control getControl();
444b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
454b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  /**
464b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * Allows the page to make contributions to the given {@link IToolBarManager}. The contributions
474b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * will be visible when the page is visible. This method is automatically called shortly after
484b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * {@link #createControl(Composite)} is called.
494b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   */
504b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  void setToolBar(IToolBarManager toolBarManager);
514b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
524b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  /**
534b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * Asks this page to take focus.
544b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   */
554b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  void setFocus();
564b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye}
57