Package sos.scheduler.editor.conf.forms

Source Code of sos.scheduler.editor.conf.forms.WebserviceForm

/********************************************************* begin of preamble
**
** Copyright (C) 2003-2010 Software- und Organisations-Service GmbH.
** All rights reserved.
**
** This file may be used under the terms of either the
**
**   GNU General Public License version 2.0 (GPL)
**
**   as published by the Free Software Foundation
**   http://www.gnu.org/licenses/gpl-2.0.txt and appearing in the file
**   LICENSE.GPL included in the packaging of this file.
**
** or the
** 
**   Agreement for Purchase and Licensing
**
**   as offered by Software- und Organisations-Service GmbH
**   in the respective terms of supply that ship with this file.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
** THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
** BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
** POSSIBILITY OF SUCH DAMAGE.
********************************************************** end of preamble*/
package sos.scheduler.editor.conf.forms;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.events.FocusAdapter;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.VerifyEvent;
import org.eclipse.swt.events.VerifyListener;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.jdom.Element;
import sos.scheduler.editor.app.IUnsaved;
import sos.scheduler.editor.app.IUpdateLanguage;
import sos.scheduler.editor.app.MainWindow;
import sos.scheduler.editor.app.Messages;
import sos.scheduler.editor.app.Utils;
import sos.scheduler.editor.conf.ISchedulerUpdate;
import sos.scheduler.editor.conf.SchedulerDom;
import sos.scheduler.editor.conf.listeners.WebserviceListener;

public class WebserviceForm extends Composite implements IUnsaved, IUpdateLanguage {
 

  private WebserviceListener listener          = null;

  private Group               group             = null;

  private Composite           gWebService       = null;

  private Button              bApply            = null;

  private Label               label             = null;

  private Text                tName             = null;

  private Label               label1            = null;

  private Text                tURL              = null;

  private Label               label2            = null;

  private CCombo              cChain            = null;

  private Label               label3            = null;

  private Text                sTimeout          = null;

  private Label               label5            = null;

  private Button              bDebug            = null;

  private Label               label7            = null;

  private Label               label13           = null;

  private Label               label19           = null;

  private Text                tRequest          = null;

  private Text                tForward          = null;

  private Text                tResponse         = null;
 
 
  public WebserviceForm(Composite parent, int style, SchedulerDom dom, Element element, ISchedulerUpdate main) {
   
    super(parent, style);
 
    listener = new WebserviceListener(dom, element, main);
    initialize();
    setToolTipText();  
    cChain.setItems(listener.getJobChains());
    setInput(true);
    setEnabledComponent();
 
    bApply.setEnabled(false);
  }


  public void apply() {
    if (isUnsaved())

      applyService();

  }


  public boolean isUnsaved() {
    return bApply.isEnabled();
  }


  private void initialize() {
    this.setLayout(new FillLayout());
    createGroup();
    setSize(new org.eclipse.swt.graphics.Point(653, 468));
    tName.setFocus();
  }


  /**
   * This method initializes group
   */
   private void createGroup() {
    GridData gridData4 = new org.eclipse.swt.layout.GridData(GridData.FILL, GridData.BEGINNING, false, false);
    GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 2;
    group = new Group(this, SWT.NONE);
    group.setText("Web Services");
    createGroup1();
    bApply = new Button(group, SWT.NONE);
    new Label(group, SWT.NONE);
    new Label(group, SWT.NONE);
    createTable();
    group.setLayout(gridLayout);
    bApply.setText("&Apply Web Service");
    bApply.setLayoutData(gridData4);
    bApply.setEnabled(false);
    bApply.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
      public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {

        applyService();

      }
    });

    new Label(group, SWT.NONE);
   }


   /**
    * This method initializes table
    */
   private void createTable() {
   }


   /**
    * This method initializes group1
    */
   private void createGroup1() {
     GridData gridData12 = new org.eclipse.swt.layout.GridData();
     gridData12.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
     gridData12.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
     GridData gridData11 = new org.eclipse.swt.layout.GridData();
     gridData11.widthHint = 50;
     GridData gridData10 = new org.eclipse.swt.layout.GridData();
     gridData10.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
     gridData10.grabExcessHorizontalSpace = true;
     gridData10.horizontalSpan = 3;
     gridData10.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
     GridData gridData9 = new org.eclipse.swt.layout.GridData();
     gridData9.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
     gridData9.grabExcessHorizontalSpace = true;
     gridData9.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
     GridData gridData8 = new org.eclipse.swt.layout.GridData();
     gridData8.horizontalSpan = 5;
     gridData8.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
     gridData8.grabExcessHorizontalSpace = true;
     gridData8.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
     GridData gridData6 = new org.eclipse.swt.layout.GridData();
     gridData6.horizontalSpan = 5;
     gridData6.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
     gridData6.grabExcessHorizontalSpace = true;
     gridData6.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
     GridLayout gridLayout1 = new GridLayout();
     gridLayout1.numColumns = 6;
     GridData gridData = new org.eclipse.swt.layout.GridData(GridData.FILL, GridData.CENTER, true, false, 1, 3);
     gWebService = new Composite(group, SWT.NONE);
     gWebService.setLayout(gridLayout1);
     gWebService.setLayoutData(gridData);
     label = new Label(gWebService, SWT.NONE);
     label.setText("Name:");
     tName = new Text(gWebService, SWT.BORDER);
     tName.addFocusListener(new FocusAdapter() {
       public void focusGained(final FocusEvent e) {
         tName.selectAll();
       }
     });
     tName.setLayoutData(gridData9);
     tName.addModifyListener(new org.eclipse.swt.events.ModifyListener() {
       public void modifyText(org.eclipse.swt.events.ModifyEvent e) {
        
         getShell().setDefaultButton(null);
        
         boolean valid = listener.isValid(tName.getText());
         if (valid)
           tName.setBackground(null);
         else
           tName.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_YELLOW));        
        
         valid = (valid && !tName.getText().equals("") && !tURL.getText().equals(""));
         if (valid) {
           getShell().setDefaultButton(bApply);
         }
         bApply.setEnabled(valid);
       
         // gWebService.setText(GROUP_WEB_SERVICE + ": " + tName.getText());
        
       }
     });
     label1 = new Label(gWebService, SWT.NONE);
     label1.setText("URL:");
     tURL = new Text(gWebService, SWT.BORDER);
     tURL.addFocusListener(new FocusAdapter() {
       public void focusGained(final FocusEvent e) {
         tURL.selectAll();
       }
     });
     tURL.addSelectionListener(new SelectionAdapter() {
       public void widgetDefaultSelected(final SelectionEvent e) {
       }


       public void widgetSelected(final SelectionEvent e) {
       }
     });
     tURL.setLayoutData(gridData10);
     tURL.addModifyListener(new org.eclipse.swt.events.ModifyListener() {
       public void modifyText(org.eclipse.swt.events.ModifyEvent e) {
         if ((tURL.getText().length() > 0) && (tURL.getText().charAt(0) != '/')) {
           tURL.setText("/" + tURL.getText());
           tURL.setSelection(2);
         }
         boolean valid = (!tName.getText().equals("") && !tURL.getText().equals(""));
         if (valid) {
           getShell().setDefaultButton(bApply);
         }
         bApply.setEnabled(valid);
       }
     });
     label2 = new Label(gWebService, SWT.NONE);
     label2.setText("Job Chain:");
     cChain = new CCombo(gWebService, SWT.BORDER);
     cChain.addSelectionListener(new SelectionAdapter() {
       public void widgetSelected(final SelectionEvent e) {
       }
     });
     cChain.setEditable(true);
     cChain.setLayoutData(gridData12);
     cChain.addModifyListener(new org.eclipse.swt.events.ModifyListener() {
       public void modifyText(org.eclipse.swt.events.ModifyEvent e) {
         setEnabledComponent();
         /*boolean valid = (!tName.getText().equals(""));
         bApply.setEnabled(valid);
         if (valid) {
           getShell().setDefaultButton(bApply);
         }
         sTimeout.setEnabled(!cChain.getText().equals(""));
         tRequest.setEnabled(!sTimeout.getEnabled());
         tResponse.setEnabled(!sTimeout.getEnabled());
         tForward.setEnabled(!sTimeout.getEnabled());
         */
       }
     });
     label3 = new Label(gWebService, SWT.NONE);
     label3.setText("Timeout:");
     sTimeout = new Text(gWebService, SWT.BORDER);
     sTimeout.addFocusListener(new FocusAdapter() {
       public void focusGained(final FocusEvent e) {
         sTimeout.selectAll();
       }
     });
     sTimeout.addVerifyListener(new VerifyListener() {
       public void verifyText(final VerifyEvent e) {
         e.doit = Utils.isOnlyDigits(e.text);
       }
     });
     sTimeout.setLayoutData(gridData11);
     sTimeout.addModifyListener(new org.eclipse.swt.events.ModifyListener() {
       public void modifyText(org.eclipse.swt.events.ModifyEvent e) {
         boolean valid = (!tName.getText().equals("")) ;
         if (valid) {
           getShell().setDefaultButton(bApply);
         }
         bApply.setEnabled(valid);
       }
     });
     label5 = new Label(gWebService, SWT.NONE);
     label5.setText("Debug:");
     bDebug = new Button(gWebService, SWT.CHECK);
     bDebug.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
       public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
         boolean valid = (!tName.getText().equals("")) ;
         if (valid) {
           getShell().setDefaultButton(bApply);
         }
         bApply.setEnabled(valid);
       }
     });
     label7 = new Label(gWebService, SWT.NONE);
     label7.setText("Request XSLT:");
     tRequest = new Text(gWebService, SWT.BORDER);
     tRequest.addFocusListener(new FocusAdapter() {
       public void focusGained(final FocusEvent e) {
         tRequest.selectAll();
       }
     });
     tRequest.setLayoutData(gridData8);
     tRequest.addModifyListener(new org.eclipse.swt.events.ModifyListener() {
       public void modifyText(org.eclipse.swt.events.ModifyEvent e) { 
         setEnabledComponent();
         /*boolean valid = (!tName.getText().equals(""));
         if (valid) {
           getShell().setDefaultButton(bApply);
         }
         bApply.setEnabled(valid);
         cChain.setEnabled(tRequest.getText().equals(""));
         */
       }
     });
     label19 = new Label(gWebService, SWT.NONE);
     label19.setText("Response XSLT:");
     tResponse = new Text(gWebService, SWT.BORDER);
     tResponse.addFocusListener(new FocusAdapter() {
       public void focusGained(final FocusEvent e) {
         tResponse.selectAll();
       }
     });
     tResponse.setLayoutData(gridData6);
     tResponse.addModifyListener(new org.eclipse.swt.events.ModifyListener() {
       public void modifyText(org.eclipse.swt.events.ModifyEvent e) {
         setEnabledComponent();
         /*boolean valid = (!tName.getText().equals(""));
         if (valid) {
           getShell().setDefaultButton(bApply);
         }
         bApply.setEnabled(valid);
         cChain.setEnabled(tResponse.getText().equals(""));
         */
       }
     });
     label13 = new Label(gWebService, SWT.NONE);
     label13.setLayoutData(new GridData());
     label13.setText("Forward XSLT:");
     GridData gridData7 = new org.eclipse.swt.layout.GridData(GridData.FILL, GridData.CENTER, true, false, 5, 1);
     tForward = new Text(gWebService, SWT.BORDER);
     tForward.addFocusListener(new FocusAdapter() {
       public void focusGained(final FocusEvent e) {
         tForward.selectAll();   
       }
     });
     tForward.setLayoutData(gridData7);
     tForward.addModifyListener(new org.eclipse.swt.events.ModifyListener() {
       public void modifyText(org.eclipse.swt.events.ModifyEvent e) {
         boolean valid = (!tName.getText().equals("")) ;
         if (valid) {
           getShell().setDefaultButton(bApply);
         }
         bApply.setEnabled(valid);
       }
     });
   }




   private void applyService() {
     boolean found = false;
     boolean exist = false;
     //TODO
     /*for (int i = 0; i < services.length; i++) {
       String url = services[i].getText(1);
       String name = services[i].getText(0);

       if (url.equals(tURL.getText()) && sel != i) {
         found = true;
       }
       if (name.equals(tName.getText()) && sel != i) {
         exist = true;
       }
     }
*/
     if (found) {
       MainWindow.message("URL-path already defined", SWT.ICON_INFORMATION);
       tURL.setFocus();
     } else {

       if (!tRequest.getText().equals("") && tResponse.getText().equals("")) {
         MainWindow.message("Please set value for Response XSLT", SWT.ICON_INFORMATION);
         tResponse.setFocus();
       } else {
         if (tRequest.getText().equals("") && !tResponse.getText().equals("")) {
           MainWindow.message("Please set value for Request XSLT", SWT.ICON_INFORMATION);
           tRequest.setFocus();
         } else {
           if (exist) {
             MainWindow.message(tName.getText() + " already exists", SWT.ICON_INFORMATION);
             tName.setFocus();
           } else {
             if (tURL.getText().equals("")) {
               MainWindow.message("Url-Path must not be empty", SWT.ICON_INFORMATION);
             } else {
               if (Utils.str2int(sTimeout.getText()) == 0 && sTimeout.getText().length() > 0) {
                 MainWindow.message("Timeout must not be 0", SWT.ICON_INFORMATION);

               } else {
                 listener.applyService(bDebug.getSelection(), cChain.getText(), tName.getText(),
                     tForward.getText(), tRequest.getText(), tResponse.getText(),
                     //sTimeout.getText(), tURL.getText(), tParams.getItems());
                     sTimeout.getText(), tURL.getText());
                 //listener.fillTable(tServices);
                 //setInput(true);
                 bApply.setEnabled(false);
                 //getShell().setDefaultButton(bNew);
               }
             }
           }
         }
       }
     }
   }




   private void setInput(boolean enabled) {


     if (enabled) {
       bDebug.setSelection(listener.getDebug());
       int index = listener.getChainIndex(listener.getJobChain());
       if (index != -1) {
         cChain.select(index);
       }
       tName.setText(listener.getName());
       cChain.setText(listener.getJobChain());
       tForward.setText(listener.getForwardXSLT());
       tRequest.setText(listener.getRequestXSLT());
       tResponse.setText(listener.getResponseXSLT());
       sTimeout.setText(Utils.getIntegerAsString(Utils.str2int(listener.getTimeout())));
       tURL.setText(listener.getURL());
       //gWebService.setText(GROUP_WEB_SERVICE + ": " + listener.getName());
       tName.setFocus();
     } else {
       tName.setText("");
       cChain.select(-1);
       tForward.setText("");
       tRequest.setText("");
       tResponse.setText("");
       sTimeout.setText("");
       tURL.setText("");
      //gWebService.setText(GROUP_WEB_SERVICE);
     }
     bDebug.setEnabled(enabled);
     cChain.setEnabled(enabled);
     tName.setEnabled(enabled);
     tForward.setEnabled(enabled);
     tRequest.setEnabled(enabled);
     tResponse.setEnabled(enabled);
     sTimeout.setEnabled(enabled);
     tURL.setEnabled(enabled);
     bApply.setEnabled(false);

     tName.setBackground(null);
   }


   public void setToolTipText() {
     bApply.setToolTipText(Messages.getTooltip("web_services.btn_apply"));
     tName.setToolTipText(Messages.getTooltip("web_services.name"));
     tURL.setToolTipText(Messages.getTooltip("web_services.url"));
     cChain.setToolTipText(Messages.getTooltip("web_services.job_chain"));
     sTimeout.setToolTipText(Messages.getTooltip("web_services.timeout"));
     bDebug.setToolTipText(Messages.getTooltip("web_services.debug"));
     tRequest.setToolTipText(Messages.getTooltip("web_services.request_xslt"));
     tForward.setToolTipText(Messages.getTooltip("web_services.forward_xslt"));
     tResponse.setToolTipText(Messages.getTooltip("web_services.response_xslt"));

   }
  
   private void setEnabledComponent() {
     boolean valid = (!tName.getText().equals(""));
     //bApply.setEnabled(valid);
     if (valid) {
       getShell().setDefaultButton(bApply);
     }
     sTimeout.setEnabled(!cChain.getText().equals(""));
     tRequest.setEnabled(!sTimeout.getEnabled());
     tResponse.setEnabled(!sTimeout.getEnabled());
     tForward.setEnabled(!sTimeout.getEnabled());
     bApply.setEnabled(valid);
     cChain.setEnabled(tRequest.getText().equals(""));
 
     /*if(Editor.JOB_CHAIN == type) {
      
       boolean valid = (!tName.getText().equals(""));
       bApply.setEnabled(valid);
       if (valid) {
         getShell().setDefaultButton(bApply);
       }
       sTimeout.setEnabled(!cChain.getText().equals(""));
       tRequest.setEnabled(!sTimeout.getEnabled());
       tResponse.setEnabled(!sTimeout.getEnabled());
       tForward.setEnabled(!sTimeout.getEnabled());
      
     } else {
      
       boolean valid = (!tName.getText().equals(""));
       if (valid) {
         getShell().setDefaultButton(bApply);
       }
       bApply.setEnabled(valid);
       cChain.setEnabled(tRequest.getText().equals(""));
      
     }
     */
   }
  
} // @jve:decl-index=0:visual-constraint="10,10"
TOP

Related Classes of sos.scheduler.editor.conf.forms.WebserviceForm

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.