home *** CD-ROM | disk | FTP | other *** search
- package jclass.table;
-
- import java.awt.Component;
- import java.awt.Event;
- import java.awt.Point;
- import jclass.util.JCString;
-
- class TrackCursorAction extends Action {
- private static int CORNER_CURSOR = 5;
- private static int HORIZ_CURSOR = 11;
- private static int NONTRAV_CURSOR = 1;
- private static int TRAV_CURSOR = 2;
- private static int VERT_CURSOR = 9;
- private static long last_event = System.currentTimeMillis();
- private static int last_x = -999;
- private static int last_y = -999;
-
- private static Component locate(int var0, int var1) {
- if (!Action.table.inside(var0, var1)) {
- return null;
- } else {
- Component[] var2 = Action.table.getComponents();
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- if (var2[var3] != null && var2[var3].bounds().inside(var0, var1)) {
- return var2[var3];
- }
- }
-
- return Action.table;
- }
- }
-
- static boolean track(Event var0) {
- if (!Action.check_widget(var0)) {
- return false;
- } else if (var0.id == 505) {
- Action.setCursor(0);
- return true;
- } else {
- int var5 = 0;
- if (var0.when - last_event < 100L && Math.abs(var0.x - last_x) < 2 && Math.abs(var0.y - last_y) < 2) {
- return true;
- } else {
- last_event = var0.when;
- last_x = var0.x;
- last_y = var0.y;
- if ((var0.target == Action.table || var0.target == Action.clip) && (var0.target != Action.table || locate(var0.x, var0.y) instanceof Clip)) {
- if (Action.clip == null) {
- return false;
- } else {
- int var4 = -999;
- int var3 = -999;
- Action.table.url = null;
- Point var6;
- if ((var6 = Action.eventToXY(var0)) == null) {
- Action.setCursor(0);
- return false;
- } else {
- JCCellPosition var7;
- if ((var7 = Action.XYtoCell(false, true, var6)) == null) {
- return false;
- } else {
- var3 = var7.row;
- var4 = var7.column;
- if (Action.table.isJCTable && Widget.getComponent((JCTable)Action.table, var3, var4, false) != null) {
- Action.setCursor(0);
- return true;
- } else {
- int var1 = var6.x;
- int var2 = var6.y;
- if (ResizeCellAction.getResizePosition(var3, var4, var1, var2)) {
- if (Action.table.allow_cell_resize == 0) {
- if (Action.table.IS_TRAVERSABLE(var3, var4)) {
- var5 = TRAV_CURSOR;
- } else {
- var5 = NONTRAV_CURSOR;
- }
- } else if (Action.resize_row != -999 && Action.resize_column != -999) {
- var5 = CORNER_CURSOR;
- } else if (Action.resize_row != -999) {
- var5 = VERT_CURSOR;
- } else {
- var5 = HORIZ_CURSOR;
- }
- } else {
- if (Action.table.isJCTable && var0.target == ((JCTable)Action.table).text) {
- Action.setCursor(0);
- return false;
- }
-
- if (Action.table.span_list.size() > 0) {
- JCCellPosition var8 = new JCCellPosition();
- if (Span.find(Action.table, var3, var4, var8) != -999) {
- var3 = var8.row;
- var4 = var8.column;
- }
- }
-
- if (Action.table.applet_context != null) {
- label160: {
- if (var3 < 0 || var4 < 0 || Action.table.cellValueListeners.size() != 0) {
- label104: {
- boolean var10000;
- if (var3 == -1) {
- if (var4 >= 0) {
- break label104;
- }
-
- var10000 = false;
- } else {
- if (var4 != -1) {
- break label160;
- }
-
- if (var3 >= 0) {
- break label104;
- }
-
- var10000 = false;
- }
-
- if (!var10000) {
- break label160;
- }
- }
-
- if (Action.table.labelValueListeners.size() != 0) {
- break label160;
- }
- }
-
- Table var13 = Action.table;
- Component var9 = var13.getComponent(var3, var4);
- Object var14 = var9 != null ? var9 : var13.getCell(var3, var4);
- if (var14 != null && (var14.getClass().getName().indexOf("JCString") != -1 || false)) {
- Action.table.url = JCString.getURL(Action.table.applet, Action.table.getCell(var3, var4), var1, var2);
- if (Action.table.url != null) {
- Action.setCursor(12);
- return true;
- }
- }
- }
- }
-
- if (Action.table.IS_TRAVERSABLE(var3, var4)) {
- var5 = TRAV_CURSOR;
- } else {
- var5 = NONTRAV_CURSOR;
- }
- }
-
- if (var5 != 0) {
- Action.setCursor(var5);
- }
-
- return true;
- }
- }
- }
- }
- } else {
- Action.setCursor(0);
- return false;
- }
- }
- }
- }
- }
-