Package org.fusesource.ide.camel.editor.propertysheet

Source Code of org.fusesource.ide.camel.editor.propertysheet.SetHeaderForm

/*******************************************************************************
* Copyright (c) 2013 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
*     Red Hat, Inc. - initial API and implementation
******************************************************************************/

package org.fusesource.ide.camel.editor.propertysheet;

import org.apache.camel.model.SetHeaderDefinition;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import org.fusesource.ide.commons.camel.tools.Languages;
import org.fusesource.ide.commons.tree.Refreshable;
import org.fusesource.ide.commons.ui.form.FormSupport;


public class SetHeaderForm extends FormSupport {
  private final SetHeaderDefinition definition;
  private Text headerNameField;
  private Text expressionField;
  private ComboViewer languageCombo;
  private SetHeaderBeanView beanView;
  private Refreshable refreshable;

  public SetHeaderForm(SetHeaderDefinition definition, Refreshable refreshable) {
    this.definition = definition;
    this.refreshable = refreshable;
    this.beanView = new SetHeaderBeanView(definition);
  }

  public SetHeaderDefinition getDefinition() {
    return definition;
  }

  @Override
  public void setFocus() {
    if (headerNameField != null) {
      headerNameField.setFocus();
    }
  }

  @Override
  protected void createTextFields(Composite parent) {
    Composite panel = getForm().getBody();
    panel.setLayout(new GridLayout(2, false));

    headerNameField = createBeanPropertyTextField(panel, beanView, "headerName", "Header", "Name of the header to set");
    expressionField = createBeanPropertyTextField(panel, beanView, "expression", "Expression", "Expression used to set the header value");

    languageCombo = createBeanPropertyCombo(panel, beanView, "language", "Language", "Expression language to use", SWT.READ_ONLY | SWT.BORDER);
    languageCombo.setContentProvider(new ArrayContentProvider());
    languageCombo.setInput(new Languages().languageArray());
    languageCombo.setSelection(new StructuredSelection(beanView.getLanguage()));
  }

  @Override
  public void okPressed() {
    beanView.update();
    if (refreshable != null) {
      refreshable.refresh();
    }
  }

}
TOP

Related Classes of org.fusesource.ide.camel.editor.propertysheet.SetHeaderForm

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.