forked from LupusNobilis/java-org.hwo
Tasklet, Shapes
parent
dba92aaa8b
commit
118be98bac
|
@ -0,0 +1,45 @@
|
|||
package org.hwo.fifo;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
public class FiFo<T> {
|
||||
|
||||
private LinkedList<T> elements;
|
||||
|
||||
public FiFo()
|
||||
{
|
||||
elements = new LinkedList<T>();
|
||||
}
|
||||
|
||||
public void push(T element)
|
||||
{
|
||||
elements.add(element);
|
||||
}
|
||||
|
||||
public T pull()
|
||||
{
|
||||
return elements.poll();
|
||||
}
|
||||
|
||||
public T peek()
|
||||
{
|
||||
return elements.peek();
|
||||
}
|
||||
|
||||
public List<T> getElements()
|
||||
{
|
||||
return elements;
|
||||
}
|
||||
|
||||
public boolean isEmpty()
|
||||
{
|
||||
return elements.isEmpty();
|
||||
}
|
||||
|
||||
public boolean hasElements()
|
||||
{
|
||||
return !elements.isEmpty();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
package org.hwo.tasklet;
|
||||
|
||||
public interface Tasklet {
|
||||
|
||||
public void run(Object arg);
|
||||
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
package org.hwo.tasklet;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Stack;
|
||||
|
||||
import org.hwo.fifo.FiFo;
|
||||
|
||||
public class TaskletThread extends Thread {
|
||||
|
||||
private class QueuedTasklet
|
||||
{
|
||||
private Tasklet tasklet;
|
||||
private Object argument;
|
||||
|
||||
public QueuedTasklet(Tasklet tasklet,Object argument)
|
||||
{
|
||||
this.tasklet = tasklet;
|
||||
this.argument = argument;
|
||||
}
|
||||
}
|
||||
|
||||
private FiFo<QueuedTasklet> queuedTasklets = new FiFo<QueuedTasklet>();
|
||||
|
||||
public TaskletThread() {
|
||||
start();
|
||||
}
|
||||
|
||||
public void queue(Tasklet tasklet,Object arg)
|
||||
{
|
||||
synchronized (queuedTasklets) {
|
||||
queuedTasklets.push(new QueuedTasklet(tasklet,arg));
|
||||
}
|
||||
queuedTasklets.notify();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
while (true)
|
||||
{
|
||||
QueuedTasklet queuedTasklet = null;
|
||||
|
||||
synchronized (queuedTasklets) {
|
||||
try {
|
||||
queuedTasklets.wait(100);
|
||||
queuedTasklet = queuedTasklets.pull();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
if (queuedTasklet != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
queuedTasklet.tasklet.run(queuedTasklet.argument);
|
||||
} catch (Exception ex)
|
||||
{
|
||||
System.err.println("Tasklet throwed Exception: " + ex.toString());
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
if (isInterrupted())
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
package org.hwo.ui.shapes;
|
||||
|
||||
import java.awt.Polygon;
|
||||
|
||||
public class Rectangle extends Polygon {
|
||||
|
||||
public Rectangle(int left,int top,int width,int height)
|
||||
{
|
||||
super(new int[]{left,left + width - 1,left + width - 1,left},new int[]{ top,top,top + height - 1,top + height - 1 },4);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -9,5 +9,4 @@ public class Triangle extends Polygon {
|
|||
super(new int[]{x1,x2,x3},new int[]{y1,y2,y3},3);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue