Package de.innovationgate.eclipse.wgadesigner.preferences

Source Code of de.innovationgate.eclipse.wgadesigner.preferences.WGADesignTemplates

/*******************************************************************************
* Copyright (c) 2009, 2010 Innovation Gate GmbH.
* 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:
*     Innovation Gate GmbH - initial API and implementation
******************************************************************************/
package de.innovationgate.eclipse.wgadesigner.preferences;

import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;

import de.innovationgate.eclipse.utils.BeanListPreferencesStore;
import de.innovationgate.eclipse.utils.ui.EditableTableControl;
import de.innovationgate.eclipse.wgadesigner.WGADesignerPlugin;
import de.innovationgate.eclipse.wgadesigner.dialogs.AddTemplateDialog;
import de.innovationgate.eclipse.wgadesigner.models.DesignTemplate;
import de.innovationgate.eclipse.wgadesigner.models.DesignTemplatesModel;

public class WGADesignTemplates extends PreferencePage implements IWorkbenchPreferencePage {

  private Composite _container;
  private EditableTableControl<DesignTemplate> _tableControl;
  private DesignTemplatesModel _model;
  private BeanListPreferencesStore<DesignTemplate> _store;

  public WGADesignTemplates() {
    // TODO edit Descriptiontext
    setDescription("WGA Templates");
    // noDefaultAndApplyButton();
  }

  @Override
  protected Control createContents(Composite parent) {

    _container = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 1;
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = 0;
    _container.setLayout(layout);

    _tableControl = new EditableTableControl<DesignTemplate>(_container, SWT.NONE);
    _tableControl.setLayoutData(new GridData(GridData.FILL_BOTH));
    String[] columnNames = new String[] { "Template name", "path" };

    _store = WGADesignerPlugin.getDefault().getDesginTemplateStore();
    _store.load();

    _model = new DesignTemplatesModel(_store.getBeans());

    _tableControl.init(columnNames, _model);

    _tableControl.getButton(EditableTableControl.BUTTON_ADD).addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
      public void widgetSelected(SelectionEvent e) {
        handleAdd();
      }

    });

    _tableControl.getButton(EditableTableControl.BUTTON_REMOVE).addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
      public void widgetSelected(SelectionEvent e) {
        handleRemove();
      }
    });
   
   
    _tableControl.getTable().addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent e) {
       
       
        if (_tableControl.getTable().getSelectionCount() > 0) {
          DesignTemplate design = (DesignTemplate) _tableControl.getTable().getSelection()[0].getData();         
         
          if (PreferenceInitializer.getDefaultTemplates().contains(design)) {
            _tableControl.getButton(EditableTableControl.BUTTON_REMOVE).setEnabled(false);
          } else {
            _tableControl.getButton(EditableTableControl.BUTTON_REMOVE).setEnabled(true);
          }
        } else {
          _tableControl.getButton(EditableTableControl.BUTTON_REMOVE).setEnabled(false);
        }
      }
    });
   

    return _container;

  }

  private void handleAdd() {
    AddTemplateDialog addDialog = new AddTemplateDialog(getShell());
    addDialog.open();
   
    if (addDialog.getReturnCode() == Dialog.OK) {
     
      _model.add(addDialog.getDesign());
    }
   
  //  if (addDialog.isOk()) {
  //    _model.add(design);
  //  }
  }

  private void handleRemove() {

    if (_tableControl.getTable().getSelectionCount() > 0) {
      DesignTemplate design = (DesignTemplate) _tableControl.getTable().getSelection()[0].getData();
      _model.remove(design);
    }
  }

  public void init(IWorkbench workbench) {
    // TODO Auto-generated method stub

  }
 
  public boolean performOk() {
    _store.flush();
    return true;
  }
 
    protected void performDefaults() {
        //super.performDefaults();
        _store.restoreDefault(false);
        _model.refresh(_store.getBeans());
       
       
       
       
       
       
    }
 
 
 

}
TOP

Related Classes of de.innovationgate.eclipse.wgadesigner.preferences.WGADesignTemplates

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.