Skip to content

Commit

Permalink
codigo da aula 22
Browse files Browse the repository at this point in the history
  • Loading branch information
Fernando Miguel Carvalho committed May 3, 2012
1 parent 1bf9592 commit 53a953f
Show file tree
Hide file tree
Showing 19 changed files with 280 additions and 40 deletions.

Large diffs are not rendered by default.

14 changes: 11 additions & 3 deletions aula21-command-shell/src/main/java/cmdsh/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,10 @@
import cmdsh.commands.IoZip;
import cmdsh.core.CmdPrintOnBillboard;
import cmdsh.core.CmdPrintTime;
import cmdsh.core.CommandEvent;
import cmdsh.core.CommandObserver;
import cmdsh.core.Context;
import cmdsh.core.IArgument;
import cmdsh.core.ICommand;
import cmdsh.core.UnrecognizedContext;
import static java.lang.System.in;
Expand All @@ -56,15 +58,21 @@ public static void main(String[] args) throws ClassNotFoundException, Instantiat
//
final Billboard bb = Billboard.launch();
CommandObserver o1 = new CommandObserver() {
public void cmdPerformed(String cmdName) {
System.out.println(format.format(cal.getTime()));
public void cmdPerformed(CommandEvent e) {
System.out.println(format.format(cal.getTime()) + "parser = " + e.parser );
}
};
CommandObserver o2 = new CommandObserver() {
public void cmdPerformed(String cmdName) {
public void cmdPerformed(CommandEvent e) {
bb.addText("-------------------------");
bb.addText(format.format(cal.getTime()));
String cmdName = e.cmdName + "(";
for (IArgument a : e.args) {
cmdName += a.getName() + ",";
}
cmdName += ")";
bb.addText("performed: " + cmdName);

}
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ public abstract class AbstractCommand implements ICommand{
* @uml.associationEnd aggregation="shared" inverse="cmdsh.core.IArgument" multiplicity="(0 -1)"
*/
private final List<IArgument> args = new LinkedList<IArgument>();
/**
* @uml.property name="obs"
* @uml.associationEnd aggregation="shared" inverse="cmdsh.core.CommandObserver" multiplicity="(0 -1)"
*/
private final Collection<CommandObserver> obs = new LinkedList<CommandObserver>();

public void addObserver(CommandObserver o){
Expand All @@ -32,7 +36,7 @@ public void removeObserver(CommandObserver o){

public void notifyObservers(){
for (CommandObserver o : obs) {
o.cmdPerformed(this.getName());
o.cmdPerformed(new CommandEvent(this.getName(), this.args(), parser));
}
}
public AbstractCommand(String name, IParamsParser parser, IArgument[] arrArgs, CommandObserver...obs) {
Expand Down
15 changes: 15 additions & 0 deletions aula21-command-shell/src/main/java/cmdsh/core/CommandEvent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package cmdsh.core;

public class CommandEvent {
public final String cmdName;
public final Iterable<IArgument> args;
public final IParamsParser parser;
public CommandEvent(String cmdName, Iterable<IArgument> args, IParamsParser parser) {
super();
this.cmdName = cmdName;
this.args = args;
this.parser = parser;
}


}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package cmdsh.core;

public interface CommandObserver {
void cmdPerformed(String cmdName);
void cmdPerformed(CommandEvent e);
}
1 change: 1 addition & 0 deletions aula22-observer/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
target/
107 changes: 107 additions & 0 deletions aula22-observer/build.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
<!-- ======================================================================
<Project name>: <Project description>
====================================================================== -->

<project name="project-name" default="package" basedir=".">

<description>Ant build file</description>

<!--++++++++++ Properties ++++++++++-->
<property name="src-main" location="src/main/java"/>
<property name="src-test" location="src/test/java"/>
<property name="target" location="target"/>
<property name="target-classes" location="target/classes"/>
<property name="target-test-classes" location="target/test-classes"/>
<property name="target-test-reports" location="target/test-reports"/>
<property name="dist-dir" location="dist"/>
<property name="jar-name" value="${ant.project.name}"/>

<path id="main.extlibs.class.path">
<fileset dir="vendor/main/lib">
<include name="**/*.jar" />
</fileset>
</path>

<path id="test.extlibs.class.path">
<path refid="main.extlibs.class.path" />
<fileset dir="vendor/test/lib">
<include name="**/*.jar" />
</fileset>
</path>

<!--++++++++++ Targets ++++++++++-->

<target name="package" depends="test" description="Packages the main classes into a jar" >
<buildnumber />
<jar jarfile="${dist}/${jar-name}.${build.number}.jar" basedir="${target-classes}"/>
</target>


<target name="init" description ="Creates the target folders">
<mkdir dir="${target-classes}"/>
<mkdir dir="${target-test-classes}"/>
<mkdir dir="${target-test-reports}"/>
</target>


<target name="clean" description="Removes the target folders" >
<!--delete dir="${target}" excludes="applications" verbose="true"/-->
<delete includeEmptyDirs="true" failonerror="false" verbose="true" >
<fileset dir="${target}" defaultexcludes="false"/>
</delete>

</target>


<target name="compile-main" depends="init"
description="Compiles the main source" >

<javac debug="true"
srcdir="${src-main}"
destdir="${target-classes}"
includeantruntime="false">
<classpath>
<path refid="main.extlibs.class.path" />
</classpath>
</javac>
<copy todir="${target-classes}">
<fileset dir="${src-main}">
<include name="**/*.properties"/>
</fileset>
</copy>
</target>


<target name="compile-test" depends="compile-main" description="Compiles the test source" >
<javac debug="true"
debugLevel="source"
srcdir="${src-test}"
destdir="${target-test-classes}"
includeantruntime="true">
<classpath>
<pathelement location="${target-classes}"/>
<path refid="test.extlibs.class.path" />
</classpath>
</javac>
</target>

<target name="test" depends="compile-test" description="Runs the tests">
<junit printsummary="yes" haltonfailure="true" showoutput="true" >
<classpath>
<pathelement location="${target-classes}"/>
<pathelement location="${target-test-classes}"/>
<path refid="test.extlibs.class.path" />
</classpath>

<formatter type="plain"/>

<batchtest fork="yes" todir="${target-test-reports}" >
<fileset dir="${src-test}">
<include name="**/*Test*.java"/>
</fileset>
<formatter type="xml"/>
<formatter type="plain" usefile="false" />
</batchtest>
</junit>
</target>
</project>
Empty file added aula22-observer/dist/.gitignore
Empty file.
32 changes: 32 additions & 0 deletions aula22-observer/readme.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
* Contents:
+ build.xml - ant build file

+ build.number - current build number

+ src - source folder (follows Maven folder structure)

+ docs

+ main - main sources

+ java - java main sources (package folders start here)
+ packages ...

+ sql

+ resource

+ test - test sources

+ java - java test sources (package folders start here)
+ packages ...

+ sql

+ resource

+ vendor/lib/ - external libraries

+ target (created by compile tasks and removed by "clean" task) - .class and .jar files

- shouldn't be on remote repository.
Empty file.
Empty file.
48 changes: 48 additions & 0 deletions aula22-observer/src/main/java/app/Program.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package app;

import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.WindowConstants;

public class Program {

public static void main(String [] args){
JFrame frm = new JFrame();
frm.setLayout(new FlowLayout());
final JButton bt1 = new JButton("Click");
final JButton bt2 = new JButton("<= Forward");
frm.add(bt1);
frm.add(bt2);
bt1.addMouseListener(new MouseListener() {
public void mouseReleased(MouseEvent arg0) {}
public void mousePressed(MouseEvent arg0) {}
public void mouseExited(MouseEvent arg0) {}
public void mouseEntered(MouseEvent arg0) {}
public void mouseClicked(MouseEvent e) {
JOptionPane.showMessageDialog(bt1, "bt1 clicked!");
}
});
bt1.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
JOptionPane.showMessageDialog(bt1, "Hello!");
}
});
bt2.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
JOptionPane.showMessageDialog(bt2, "Hello2!");
bt1.dispatchEvent(arg0);
}
});
frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frm.pack();
frm.setVisible(true);
}
}
Empty file.
Empty file.
Empty file.
Binary file added aula22-observer/vendor/main/lib/aopalliance.jar
Binary file not shown.
Binary file added aula22-observer/vendor/main/lib/guice-2.0.jar
Binary file not shown.
Binary file added aula22-observer/vendor/main/lib/sqljdbc4.jar
Binary file not shown.
Binary file added aula22-observer/vendor/test/lib/junit-4.8.1.jar
Binary file not shown.

0 comments on commit 53a953f

Please sign in to comment.