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);
|
super(new int[]{x1,x2,x3},new int[]{y1,y2,y3},3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue