Package com.dubture.composer.ui.editor.composer

Source Code of com.dubture.composer.ui.editor.composer.OverviewPage

/**
*
*/
package com.dubture.composer.ui.editor.composer;

import org.eclipse.swt.program.Program;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.events.IHyperlinkListener;
import org.eclipse.ui.forms.widgets.FormText;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.forms.widgets.TableWrapData;
import org.eclipse.ui.forms.widgets.TableWrapLayout;

import com.dubture.composer.ui.ComposerUIPluginImages;
import com.dubture.composer.ui.editor.ComposerFormPage;

/**
* @author Thomas Gossmann
*
*/
public class OverviewPage extends ComposerFormPage {

  public final static String ID = "com.dubture.composer.ui.editor.composer.OverviewPage";

  protected ComposerFormEditor editor;
 
  private Composite left;
  private Composite right;
 
  private GeneralSection generalSection;
  private AuthorSection authorSection;
  private SupportSection supportSection;
 
  protected IHyperlinkListener linkListener = new HyperlinkAdapter() {
    public void linkActivated(HyperlinkEvent event) {
      String[] chunks = event.getHref().toString().split(":");
      String type = chunks[0];
      String target = chunks[1];
      if (type.equals("page")) {
        editor.setActivePage(target)
      } else if (type.equals("view")) {
        editor.setActivePage(target);
      }
    }
  };


  /**
   * @param editor
   * @param id
   * @param title
   */
  public OverviewPage(ComposerFormEditor editor, String id, String title) {
    super(editor, id, title);
    this.editor = editor;
  }
 
  @Override
  public void setActive(boolean active) {
    super.setActive(active);
   
    if (active) {
      editor.getHeaderForm().getForm().setText("Overview");
    }
  }
 
  @Override
  public void setEnabled(boolean enabled) {
    super.setEnabled(enabled);
   
    generalSection.setEnabled(enabled);
    authorSection.setEnabled(enabled);
    supportSection.setEnabled(enabled);
  }

  @Override
  protected void createFormContent(IManagedForm managedForm) {
    ScrolledForm form = managedForm.getForm();
    FormToolkit toolkit = managedForm.getToolkit();

    TableWrapLayout layout = new TableWrapLayout();
    layout.makeColumnsEqualWidth = true;
    layout.numColumns = 2;
    form.getBody().setLayout(layout);
   
    left = toolkit.createComposite(form.getBody());
    left.setLayout(new TableWrapLayout());
    left.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
   
    generalSection = new GeneralSection(this, left);
    authorSection = new AuthorSection(this, left);
    supportSection = new SupportSection(this, left);
   
    right = toolkit.createComposite(form.getBody());
    right.setLayout(new TableWrapLayout());
    right.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
   
    createConfigurationSection(right, toolkit);
    createDependenciesSection(right, toolkit);
    createComposerSection(right, toolkit);
  }
 
  private void createConfigurationSection(Composite parent, FormToolkit toolkit) {
    Section section = toolkit.createSection(parent, Section.EXPANDED | Section.TITLE_BAR);
    section.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
    section.setText("Configuration");
   
    Composite client = toolkit.createComposite(section);
    section.setClient(client);
    client.setLayout(new TableWrapLayout());

    FormText config = toolkit.createFormText(client, false);
    config.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
    config.setText(
        "<form>\n<p>Configure your package:" +
        "</p>\n\n<li style=\"image\" value=\"page\"><a href=\"page:" +
        AutoloadPage.ID + "\">Autoload</a>: manage psr-0, classmap and files " +
        "this package may have.</li>\n<li style=\"image\" value=\"page\">" +
        "<a href=\"page:" + ConfigurationPage.ID + "\">Configuration</a>: " +
        "Configs, Scripts and Repositories can be set here.</li>\n</form>", true, false);
    config.setImage("page", ComposerUIPluginImages.PAGE.createImage());
    config.addHyperlinkListener(linkListener);
  }

  private void createDependenciesSection(Composite parent, FormToolkit toolkit) {
    Section section = toolkit.createSection(parent, Section.EXPANDED | Section.TITLE_BAR);
    section.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
    section.setText("Dependencies");
   
    Composite client = toolkit.createComposite(section);
    section.setClient(client);
    client.setLayout(new TableWrapLayout());

    FormText dependencies = toolkit.createFormText(client, false);
    dependencies.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
    dependencies.setText(
        "<form>\n<p>This packages dependencies are made up in two pages:" +
        "</p>\n\n<li style=\"image\" value=\"page\"><a href=\"page:"+
        DependenciesPage.ID+"\">Dependencies</a>: declares the dependencies " +
        "this package may have.</li>\n<li style=\"image\" value=\"page\">" +
        "<a href=\"view:"+ DependencyGraphPage.ID + "\">Dependency Graph</a>: " +
        "shows the dependencies in a nice graph.</li>\n</form>", true, false);
    dependencies.setImage("page", ComposerUIPluginImages.PAGE.createImage());
    dependencies.addHyperlinkListener(linkListener);
  }
 
  private void createComposerSection(Composite parent, FormToolkit toolkit) {
    Section section = toolkit.createSection(parent, Section.EXPANDED | Section.TITLE_BAR);
    section.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
    section.setText("Composer Information");
   
    Composite client = toolkit.createComposite(section);
    section.setClient(client);
    client.setLayout(new TableWrapLayout());

    FormText composer = toolkit.createFormText(client, false);
    composer.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
    composer.setText("<form>\n<p>Composer is a dependency manager for php.</p>\n\n<li " +
        "style=\"image\" value=\"url\"><a href=\"http://getcomposer.org\">Composer</a>: " +
        "Composer Homepage</li>\n<li style=\"image\" value=\"url\">" +
        "<a href=\"http://getcomposer.org/doc/00-intro.md\">Getting Started</a> " +
        "with Composer</li>\n<li style=\"image\" value=\"url\">" +
        "<a href=\"http://getcomposer.org/doc/\">Documentation</a></li>\n" +
        "<li style=\"image\" value=\"url\">" +
        "<a href=\"http://getcomposer.org/doc/04-schema.md\">Schema Reference</a></li>\n" +
        "<li style=\"image\" value=\"url\">" +
        "<a href=\"http://github.com/composer/composer/issues\">Issues</a>: " +
        "Report Issues</li>\n<li style=\"image\" value=\"url\">" +
        "<a href=\"http://packagist.org\">Packagist</a>: " +
        "Browse Packages</li>\n</form>", true, false);
    composer.setImage("url", ComposerUIPluginImages.BROWSER.createImage());
    composer.addHyperlinkListener(new HyperlinkAdapter() {
      public void linkActivated(HyperlinkEvent e) {
        Program.launch(e.getHref().toString());
      }
    });
  }
 
}
TOP

Related Classes of com.dubture.composer.ui.editor.composer.OverviewPage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.