home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VCafe / JCLASS.BIN / KLG.JAR / jclass / table / TrackCursorAction.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-12-05  |  3.4 KB  |  170 lines

  1. package jclass.table;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Event;
  5. import java.awt.Point;
  6. import jclass.util.JCString;
  7.  
  8. class TrackCursorAction extends Action {
  9.    private static int CORNER_CURSOR = 5;
  10.    private static int HORIZ_CURSOR = 11;
  11.    private static int NONTRAV_CURSOR = 1;
  12.    private static int TRAV_CURSOR = 2;
  13.    private static int VERT_CURSOR = 9;
  14.    private static long last_event = System.currentTimeMillis();
  15.    private static int last_x = -999;
  16.    private static int last_y = -999;
  17.  
  18.    private static Component locate(int var0, int var1) {
  19.       if (!Action.table.inside(var0, var1)) {
  20.          return null;
  21.       } else {
  22.          Component[] var2 = Action.table.getComponents();
  23.  
  24.          for(int var3 = 0; var3 < var2.length; ++var3) {
  25.             if (var2[var3] != null && var2[var3].bounds().inside(var0, var1)) {
  26.                return var2[var3];
  27.             }
  28.          }
  29.  
  30.          return Action.table;
  31.       }
  32.    }
  33.  
  34.    static boolean track(Event var0) {
  35.       if (!Action.check_widget(var0)) {
  36.          return false;
  37.       } else if (var0.id == 505) {
  38.          Action.setCursor(0);
  39.          return true;
  40.       } else {
  41.          int var5 = 0;
  42.          if (var0.when - last_event < 100L && Math.abs(var0.x - last_x) < 2 && Math.abs(var0.y - last_y) < 2) {
  43.             return true;
  44.          } else {
  45.             last_event = var0.when;
  46.             last_x = var0.x;
  47.             last_y = var0.y;
  48.             if ((var0.target == Action.table || var0.target == Action.clip) && (var0.target != Action.table || locate(var0.x, var0.y) instanceof Clip)) {
  49.                if (Action.clip == null) {
  50.                   return false;
  51.                } else {
  52.                   int var4 = -999;
  53.                   int var3 = -999;
  54.                   Action.table.url = null;
  55.                   Point var6;
  56.                   if ((var6 = Action.eventToXY(var0)) == null) {
  57.                      Action.setCursor(0);
  58.                      return false;
  59.                   } else {
  60.                      JCCellPosition var7;
  61.                      if ((var7 = Action.XYtoCell(false, true, var6)) == null) {
  62.                         return false;
  63.                      } else {
  64.                         var3 = var7.row;
  65.                         var4 = var7.column;
  66.                         if (Action.table.isJCTable && Widget.getComponent((JCTable)Action.table, var3, var4, false) != null) {
  67.                            Action.setCursor(0);
  68.                            return true;
  69.                         } else {
  70.                            int var1 = var6.x;
  71.                            int var2 = var6.y;
  72.                            if (ResizeCellAction.getResizePosition(var3, var4, var1, var2)) {
  73.                               if (Action.table.allow_cell_resize == 0) {
  74.                                  if (Action.table.IS_TRAVERSABLE(var3, var4)) {
  75.                                     var5 = TRAV_CURSOR;
  76.                                  } else {
  77.                                     var5 = NONTRAV_CURSOR;
  78.                                  }
  79.                               } else if (Action.resize_row != -999 && Action.resize_column != -999) {
  80.                                  var5 = CORNER_CURSOR;
  81.                               } else if (Action.resize_row != -999) {
  82.                                  var5 = VERT_CURSOR;
  83.                               } else {
  84.                                  var5 = HORIZ_CURSOR;
  85.                               }
  86.                            } else {
  87.                               if (Action.table.isJCTable && var0.target == ((JCTable)Action.table).text) {
  88.                                  Action.setCursor(0);
  89.                                  return false;
  90.                               }
  91.  
  92.                               if (Action.table.span_list.size() > 0) {
  93.                                  JCCellPosition var8 = new JCCellPosition();
  94.                                  if (Span.find(Action.table, var3, var4, var8) != -999) {
  95.                                     var3 = var8.row;
  96.                                     var4 = var8.column;
  97.                                  }
  98.                               }
  99.  
  100.                               if (Action.table.applet_context != null) {
  101.                                  label160: {
  102.                                     if (var3 < 0 || var4 < 0 || Action.table.cellValueListeners.size() != 0) {
  103.                                        label104: {
  104.                                           boolean var10000;
  105.                                           if (var3 == -1) {
  106.                                              if (var4 >= 0) {
  107.                                                 break label104;
  108.                                              }
  109.  
  110.                                              var10000 = false;
  111.                                           } else {
  112.                                              if (var4 != -1) {
  113.                                                 break label160;
  114.                                              }
  115.  
  116.                                              if (var3 >= 0) {
  117.                                                 break label104;
  118.                                              }
  119.  
  120.                                              var10000 = false;
  121.                                           }
  122.  
  123.                                           if (!var10000) {
  124.                                              break label160;
  125.                                           }
  126.                                        }
  127.  
  128.                                        if (Action.table.labelValueListeners.size() != 0) {
  129.                                           break label160;
  130.                                        }
  131.                                     }
  132.  
  133.                                     Table var13 = Action.table;
  134.                                     Component var9 = var13.getComponent(var3, var4);
  135.                                     Object var14 = var9 != null ? var9 : var13.getCell(var3, var4);
  136.                                     if (var14 != null && (var14.getClass().getName().indexOf("JCString") != -1 || false)) {
  137.                                        Action.table.url = JCString.getURL(Action.table.applet, Action.table.getCell(var3, var4), var1, var2);
  138.                                        if (Action.table.url != null) {
  139.                                           Action.setCursor(12);
  140.                                           return true;
  141.                                        }
  142.                                     }
  143.                                  }
  144.                               }
  145.  
  146.                               if (Action.table.IS_TRAVERSABLE(var3, var4)) {
  147.                                  var5 = TRAV_CURSOR;
  148.                               } else {
  149.                                  var5 = NONTRAV_CURSOR;
  150.                               }
  151.                            }
  152.  
  153.                            if (var5 != 0) {
  154.                               Action.setCursor(var5);
  155.                            }
  156.  
  157.                            return true;
  158.                         }
  159.                      }
  160.                   }
  161.                }
  162.             } else {
  163.                Action.setCursor(0);
  164.                return false;
  165.             }
  166.          }
  167.       }
  168.    }
  169. }
  170.