Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

DeveloperFilterStringEditPane Class After Editing


package samples.subsystems;

import org.eclipse.rse.services.clientserver.messages.SystemMessage;
import org.eclipse.rse.ui.SystemWidgetHelpers;
import org.eclipse.rse.ui.filters.SystemFilterStringEditPane;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

import samples.RSESamplesPlugin;

/**
 * Our specialized filter string edit pane for developer filters.
 */
public class DeveloperFilterStringEditPane extends SystemFilterStringEditPane {

	// gui widgets
	private Text textTeam, textDevr;

	/**
	 * Constructor for DeveloperFilterStringEditPane.
	 * @param shell - parent window
	 */
	public DeveloperFilterStringEditPane(Shell shell)
	{
		super(shell);
	}

	/**
	 * Override of parent method.
	 * This is where we populate the client area.
	 * @param parent - the composite that will be the parent of the returned client area composite
	 * @return Control - a client-area composite populated with widgets.
	 * 
	 * @see org.eclipse.rse.ui.SystemWidgetHelpers
	 */
	public Control createContents(Composite parent) 
	{		
		// Inner composite
		int nbrColumns = 1;
		Composite composite_prompts = SystemWidgetHelpers.createComposite(parent, nbrColumns);	
		((GridLayout)composite_prompts.getLayout()).marginWidth = 0;
		
		// CREATE TEAM-PARENT PROMPT
		textTeam = SystemWidgetHelpers.createLabeledTextField(
			composite_prompts,
			null,
			RSESamplesPlugin.getResourceString("filter.devr.teamprompt.label"), //$NON-NLS-1$
			RSESamplesPlugin.getResourceString("filter.devr.teamprompt.tooltip") //$NON-NLS-1$
		); 

		// CREATE DEVELOPER PROMPT
		textDevr = SystemWidgetHelpers.createLabeledTextField(
			composite_prompts,
			null,
			RSESamplesPlugin.getResourceString("filter.devr.devrprompt.label"), //$NON-NLS-1$
			RSESamplesPlugin.getResourceString("filter.devr.devrprompt.tooltip") //$NON-NLS-1$
		); 
		
		resetFields();
		doInitializeFields();
		  		  
		// add keystroke listeners...
		textTeam.addModifyListener(
			new ModifyListener() 
			{
				public void modifyText(ModifyEvent e) 
				{
					validateStringInput();
				}
			}
		);		
		textDevr.addModifyListener(
			new ModifyListener() 
			{
				public void modifyText(ModifyEvent e) 
				{
					validateStringInput();
				}
			}
		);		
		return composite_prompts;
	}

	/**
	 * Override of parent method.
	 * Return the control to recieve initial focus. 
	 */
	public Control getInitialFocusControl()
	{
		return textTeam;
	}	

	/**
	 * Override of parent method.
	 * Initialize the input fields based on the inputFilterString, and perhaps refProvider.
	 * This can be called before createContents, so test for null widgets first!
	 * Prior to this being called, resetFields is called to set the initial default state prior to input
	 */		
	protected void doInitializeFields()
	{
		if (textTeam == null)
		  return; // do nothing
		if (inputFilterString != null)
		{
			int idx = inputFilterString.indexOf('/');
			if (idx < 0)
		      textTeam.setText(inputFilterString);
		    else
		    {
		    	textTeam.setText(inputFilterString.substring(0,idx));
		    	textDevr.setText(inputFilterString.substring(idx+1));
		    }
		}
	}	

	/**
	 * Override of parent method.
	 * This is called in the change filter dialog when the user selects "new", or selects another string.
	 */
	protected void resetFields()
	{
	    textTeam.setText(""); //$NON-NLS-1$		
	    textDevr.setText("*"); //$NON-NLS-1$
	}

	/**
	 * Override of parent method.
	 * Called by parent to decide if information is complete enough to enable finish. 
	 */
	protected boolean areFieldsComplete()
	{
		if ((textTeam == null) || (textDevr == null))
		  return false;
		else
		  return (textTeam.getText().trim().length()>0) && (textDevr.getText().trim().length()>0);
	}
	
	/**
	 * Override of parent method.
	 * Get the filter string in its current form. 
	 * Functional opposite of doInitializeFields, which tears apart the input string in update mode,
	 *  to populate the GUIs. This method creates the filter string from the information in the GUI.
	 */
	public String getFilterString()
	{
		if ((textTeam == null) || (textDevr == null))
		  return inputFilterString; // return what we were given.
		else
		{
			String teamName = textTeam.getText().trim();
			String devrName = textDevr.getText().trim();
			return teamName + "/" + devrName; //$NON-NLS-1$
		}
	}	

	/**
	 * Override of parent method.
	 * Does complete verification of input fields. If this 
	 * method returns null, there are no errors and the dialog or wizard can close.
	 *
	 * @return error message if there is one, else null if ok
	 */
	public SystemMessage verify() 
	{
		errorMessage = null;
		Control controlInError = null;
		
		/*
		errorMessage = validateTeamInput(); // todo: implement if we want to syntax check input
		if (errorMessage != null)
		  controlInError = textTeam;
		else
		{
		   errorMessage = validateDevrInput(); // todo: implement to syntax check input
		   if (errorMessage != null)
		     controlInError = textDevr;
		}
		*/
		
		if (errorMessage != null)
		{
			if (controlInError != null)
		      controlInError.setFocus();
		}
		return errorMessage;		
	}	

}


 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire