Package es.java.otro.view

Source Code of es.java.otro.view.UrlDialog

package es.java.otro.view;

import java.net.MalformedURLException;
import java.net.URL;

import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.layout.LayoutConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class UrlDialog extends TitleAreaDialog {
  private String feedUrl;
  private Button okButton;

  public UrlDialog(Shell parent) {
    super(parent);
  }

  protected Control createContents(Composite parent) {
    Control contents = super.createContents(parent);
    setTitle("New Feed");

    return contents;
  }

  @Override
  protected Control createDialogArea(Composite parent) {
    Composite parentComposite = (Composite) super.createDialogArea(parent);
    Composite contents = new Composite(parentComposite, SWT.NONE);
    contents.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));   
   
    Label label1 = new Label(contents, SWT.NONE);
    label1.setText("Enter url:");
   
    final Text url = new Text(contents, SWT.BORDER);
    url.addModifyListener(new ModifyListener() {
      public void modifyText(ModifyEvent event) {
        if (event.widget == url) {
          feedUrl = url.getText().trim();
          okButton.setEnabled(validateUrl(feedUrl));
        }
      }
    });
    url.setFocus();
    Dialog.applyDialogFont(contents);

    Point defaultMargins = LayoutConstants.getMargins();
    GridLayoutFactory.fillDefaults().numColumns(2).margins(
        defaultMargins.x, defaultMargins.y).generateLayout(contents);
    return contents;
  }

  private boolean validateUrl(String path) {
    if (path.toLowerCase().startsWith("http://")) {
      try{
        new URL(path);
      } catch (MalformedURLException e) {
        setErrorMessage("Invalid url");
        return false;
      }
      setErrorMessage(null);
      return true;
    } else {
      return false;
    }
  }

    protected void createButtonsForButtonBar(Composite parent) {
      okButton = createButton(parent, IDialogConstants.OK_ID,
                IDialogConstants.OK_LABEL, true);
        
        createButton(parent, IDialogConstants.CANCEL_ID,
                IDialogConstants.CANCEL_LABEL, false);
    }

    public String getUrl(){
      return feedUrl;
    }
}
TOP

Related Classes of es.java.otro.view.UrlDialog

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.