Changes

Jump to: navigation, search

Teams Winter 2011/team2/lab3

5,270 bytes added, 01:43, 23 March 2011
no edit summary
<source lang=java>
package ecl.team2.lab3.weathermodel;
 
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.Random;
public class Weather {
private float windspeedInKM;
private char windDirection;
private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
public Weather()
{
}
public Weather(String cit)
{
city=cit;
Random randomGenerator = new Random();
tempInCelcius = randomGenerator.nextFloat()+35;
rainInMM = randomGenerator.nextFloat()+10;
snowInMM = randomGenerator.nextFloat()+10;
windspeedInKM = randomGenerator.nextFloat()+50;
int r = randomGenerator.nextInt(4);
switch(r){
case 0:
windDirection = 'E';
break;
case 1:
windDirection = 'W';
break;
case 2:
windDirection = 'N';
break;
case 3:
windDirection = 'S';
break;
}
}
public Weather(String pcity, float ptemp, float prain, float psnow, float pwspeed, char pwdirection){
public void setWindDirection(char windDirection) {
propertyChangeSupport.firePropertyChange("", this.windDirection, this.windDirection = windDirection);
}
public void setWindspeedInKM(float windspeedInKM) {
propertyChangeSupport.firePropertyChange("", this.windspeedInKM, this.windspeedInKM = windspeedInKM);
}
public void setSnowInMM(float snowInMM) {
propertyChangeSupport.firePropertyChange("", this.snowInMM, this.snowInMM = snowInMM);
}
public void setRainInMM(float rainInMM) {
propertyChangeSupport.firePropertyChange("", this.rainInMM, this.rainInMM = rainInMM);
}
public void setTempInCelcius(float tempInCelcius) {
propertyChangeSupport.firePropertyChange("", this.tempInCelcius, this.tempInCelcius = tempInCelcius);
}
public void setCity(String city) {
propertyChangeSupport.firePropertyChange("", this.city, this.city = city);
}
public String getCity() {
return city;
}
public void addPropertyChangeListener(String name, PropertyChangeListener listener)
{
propertyChangeSupport.addPropertyChangeListener(name,listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener)
{
propertyChangeSupport.addPropertyChangeListener(listener);
}
winddirection = 'S';
break;
}
this.weathers.add(w);
System.out.println(w.toString());
}
public void removeCity(String oCity)
{
this.weathers.remove(oCity);
}
For AddCityHandler.java
<source lang=java>
package ecl.team2.lab3.commands;
 
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
 
//This will allow us to edit the content using the editor window
import ecl.team2.lab3.editor.WeatherEditor;
import ecl.team2.lab3.editor.WeatherInput;
 
public class AddCityHandler extends AbstractHandler implements IHandler {
 
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
IWorkbenchPage page = window.getActivePage();
WeatherInput input = new WeatherInput("-1");
try
{
page.openEditor(input, WeatherEditor.ID);
}
catch (PartInitException e)
{
System.out.println(e.getMessage());
}
return null;
}
}
</source>
<br/>
<br/>
 
'''RemoveCityHandler'''
For Commmand
<pre>
id: ecl.team2.lab3.rcpExample.RemoveCity
name: Add City
defaultHandler: ecl.team2.lab3.commands.RemoveCityHandler
</pre>
 
For Menu Command
<pre>
commandId: ecl.team2.lab3.rcpExample.RemoveCity
label: Remove City
tooltip: Removes a city or multiple cities based on selection
</pre>
 
For RemoveCityHandler.java
<source lang=java>
package ecl.team2.lab3.commands;
 
import java.util.ArrayList;
import java.util.Iterator;
 
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.handlers.HandlerUtil;
 
import ecl.team2.lab3.rcpexample.WeatherView;
import ecl.team2.lab3.weathermodel.*;
 
public class RemoveCityHandler extends AbstractHandler implements IHandler {
 
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
IWorkbenchPage page = window.getActivePage();
WeatherView view = (WeatherView) page.findView(WeatherView.ID);
ISelection select = view.getSite().getSelectionProvider().getSelection();
if(select!=null && select instanceof IStructuredSelection)
{
IStructuredSelection sel = (IStructuredSelection)select;
for(Iterator<Weather> iter = sel.iterator(); iter.hasNext();)
{
Weather temp = iter.next();
SimpleWeatherSystem.INSTANCE.removeCity(temp.getCity());
}
view.getViewer().refresh();
}
return null;
}
}<br/source>
<br/>
===Views===
}
</source>
<br/>
*We must now add our recently created view to the perspective, we do this by again engaging with the extensions in the MANIFEST file. We must include the "org.eclipse.ui.perspectiveExtensions" extension. After it is added, we will add a "view" to the last branch dubbed "*(perspectiveExtensions).
*Mimic the contents in the picture below
[[File:Ext5T2.png]]
*Launch the application, should get something akin to this
[[File:AppT2.png]]
<br/>
==Define and Use Editor==
1
edit

Navigation menu