/[classpath]/classpath/javax/swing/plaf/basic/BasicTableUI.java
ViewVC logotype

Diff of /classpath/javax/swing/plaf/basic/BasicTableUI.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5.2.5 by gnu_andrew, Tue Aug 2 20:12:38 2005 UTC revision 1.5.2.6 by gnu_andrew, Sun Aug 7 18:34:11 2005 UTC
# Line 40  package javax.swing.plaf.basic; Line 40  package javax.swing.plaf.basic;
40    
41  import java.awt.Color;  import java.awt.Color;
42  import java.awt.Component;  import java.awt.Component;
43    import java.awt.ComponentOrientation;
44  import java.awt.Dimension;  import java.awt.Dimension;
45  import java.awt.Graphics;  import java.awt.Graphics;
46  import java.awt.Point;  import java.awt.Point;
# Line 366  public class BasicTableUI Line 367  public class BasicTableUI
367          }          }
368        else if (evt.getKeyCode() == KeyEvent.VK_HOME)        else if (evt.getKeyCode() == KeyEvent.VK_HOME)
369          {          {
370            if (evt.getModifiers() == (InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK))            if (evt.getModifiers() ==
371                  (InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK))
372              {              {
373                rowModel.setLeadSelectionIndex(0);                rowModel.setLeadSelectionIndex(0);
374                colModel.setLeadSelectionIndex(colLead);                colModel.setLeadSelectionIndex(colLead);
# Line 395  public class BasicTableUI Line 397  public class BasicTableUI
397          }          }
398        else if (evt.getKeyCode() == KeyEvent.VK_PAGE_UP)        else if (evt.getKeyCode() == KeyEvent.VK_PAGE_UP)
399          {          {
400            // FIXME: implement, need JList.ensureIndexIsVisible to work            int target;
401              if (!evt.isControlDown())
402                {
403                  if (rowLead == getFirstVisibleRowIndex())
404                    target = Math.max
405                      (0, rowLead - (getLastVisibleRowIndex() -
406                                          getFirstVisibleRowIndex() + 1));
407                  else
408                    target = getFirstVisibleRowIndex();
409                  
410                  if (evt.getModifiers() == 0)
411                    {
412                      rowModel.setSelectionInterval(target, target);
413                      colModel.setSelectionInterval(colLead, colLead);
414                    }
415                  else if (evt.getModifiers() == InputEvent.SHIFT_MASK)
416                    {
417                      rowModel.setLeadSelectionIndex(target);
418                      colModel.setLeadSelectionIndex(colLead);
419                    }
420                }
421              else
422                {
423                  if (colLead == getFirstVisibleColumnIndex())
424                    target = Math.max
425                      (0, colLead - (getLastVisibleColumnIndex() -
426                                          getFirstVisibleColumnIndex() + 1));
427                  else
428                    target = getFirstVisibleColumnIndex();
429                  
430                  if (evt.getModifiers() == InputEvent.CTRL_MASK)
431                    {
432                      colModel.setSelectionInterval(target, target);
433                      rowModel.setSelectionInterval(rowLead, rowLead);
434                    }
435                  else if (evt.getModifiers() ==
436                           (InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK))
437                    {
438                      colModel.setLeadSelectionIndex(target);
439                      rowModel.setLeadSelectionIndex(rowLead);
440                    }
441                }
442          }          }
443        else if (evt.getKeyCode() == KeyEvent.VK_PAGE_DOWN)        else if (evt.getKeyCode() == KeyEvent.VK_PAGE_DOWN)
444          {          {
445            // FIXME: implement, need JList.ensureIndexIsVisible to work            int target;
446              if (!evt.isControlDown())
447                {
448                  if (rowLead == getLastVisibleRowIndex())
449                    target = Math.min
450                      (rowMax, rowLead + (getLastVisibleRowIndex() -
451                                          getFirstVisibleRowIndex() + 1));
452                  else
453                    target = getLastVisibleRowIndex();
454                  
455                  if (evt.getModifiers() == 0)
456                    {
457                      rowModel.setSelectionInterval(target, target);
458                      colModel.setSelectionInterval(colLead, colLead);
459                    }
460                  else if (evt.getModifiers() == InputEvent.SHIFT_MASK)
461                    {
462                      rowModel.setLeadSelectionIndex(target);
463                      colModel.setLeadSelectionIndex(colLead);
464                    }
465                }
466              else
467                {
468                  if (colLead == getLastVisibleColumnIndex())
469                    target = Math.min
470                      (colMax, colLead + (getLastVisibleColumnIndex() -
471                                          getFirstVisibleColumnIndex() + 1));
472                  else
473                    target = getLastVisibleColumnIndex();
474                  
475                  if (evt.getModifiers() == InputEvent.CTRL_MASK)
476                    {
477                      colModel.setSelectionInterval(target, target);
478                      rowModel.setSelectionInterval(rowLead, rowLead);
479                    }
480                  else if (evt.getModifiers() ==
481                           (InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK))
482                    {
483                      colModel.setLeadSelectionIndex(target);
484                      rowModel.setLeadSelectionIndex(rowLead);
485                    }
486                }
487          }          }
488        else if (evt.getKeyCode() == KeyEvent.VK_TAB        else if (evt.getKeyCode() == KeyEvent.VK_TAB
489                 || evt.getKeyCode() == KeyEvent.VK_ENTER)                 || evt.getKeyCode() == KeyEvent.VK_ENTER)
# Line 504  public class BasicTableUI Line 588  public class BasicTableUI
588          {          {
589            table.changeSelection(rowLead, colLead, true, false);            table.changeSelection(rowLead, colLead, true, false);
590          }          }
591          table.scrollRectToVisible
592            (table.getCellRect(rowModel.getLeadSelectionIndex(),
593                               colModel.getLeadSelectionIndex(), false));
594      }      }
595    
596      public void keyReleased(KeyEvent e)      public void keyReleased(KeyEvent e)
# Line 513  public class BasicTableUI Line 600  public class BasicTableUI
600      public void keyTyped(KeyEvent e)      public void keyTyped(KeyEvent e)
601      {      {
602      }      }
603    
604        /**
605         * Returns the column index of the first visible column.
606         *
607         */
608        int getFirstVisibleColumnIndex()
609        {
610          ComponentOrientation or = table.getComponentOrientation();
611          Rectangle r = table.getVisibleRect();
612          if (!or.isLeftToRight())
613            r.translate((int) r.getWidth() - 1, 0);
614          return table.columnAtPoint(r.getLocation());
615        }
616        
617        /**
618         * Returns the column index of the last visible column.
619         *
620         */
621        int getLastVisibleColumnIndex()
622        {
623          ComponentOrientation or = table.getComponentOrientation();
624          Rectangle r = table.getVisibleRect();
625          if (or.isLeftToRight())
626            r.translate((int) r.getWidth() - 1, 0);
627          return table.columnAtPoint(r.getLocation());      
628        }
629        
630        /**
631         * Returns the row index of the first visible row.
632         *
633         */
634        int getFirstVisibleRowIndex()
635        {
636          ComponentOrientation or = table.getComponentOrientation();
637          Rectangle r = table.getVisibleRect();
638          if (!or.isLeftToRight())
639            r.translate((int) r.getWidth() - 1, 0);
640          return table.rowAtPoint(r.getLocation());
641        }
642        
643        /**
644         * Returns the row index of the last visible row.
645         *
646         */
647        int getLastVisibleRowIndex()
648        {
649          ComponentOrientation or = table.getComponentOrientation();
650          Rectangle r = table.getVisibleRect();
651          r.translate(0, (int) r.getHeight() - 1);
652          if (or.isLeftToRight())
653            r.translate((int) r.getWidth() - 1, 0);
654          // The next if makes sure that we don't return -1 simply because
655          // there is white space at the bottom of the table (ie, the display
656          // area is larger than the table)
657          if (table.rowAtPoint(r.getLocation()) == -1)
658            {
659              if (getFirstVisibleRowIndex() == -1)
660                return -1;
661              else
662                return table.getModel().getRowCount() - 1;
663            }
664          return table.rowAtPoint(r.getLocation());
665        }
666    }    }
667    
668    class MouseInputHandler implements MouseInputListener    class MouseInputHandler implements MouseInputListener

Legend:
Removed from v.1.5.2.5  
changed lines
  Added in v.1.5.2.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26