Revision 12716 trunk/libraries/libUIComponent/src/org/gvsig/gui/beans/listview/ListViewComponent.java
ListViewComponent.java | ||
---|---|---|
299 | 299 |
((JScrollPane) jViewport.getParent()).getVerticalScrollBar().setUnitIncrement(((ListViewItem) items.get(0)).getItemRectangle().height); |
300 | 300 |
} |
301 | 301 |
} |
302 |
|
|
303 | 302 |
} |
304 | 303 |
|
305 | 304 |
public boolean isMultiSelect() { |
... | ... | |
416 | 415 |
|
417 | 416 |
if (jViewport.getParent() instanceof JScrollPane) { |
418 | 417 |
ListViewItem lvi = ((ListViewItem) items.get(pos)); |
419 |
Rectangle rectangle = lvi.getItemRectangle();
|
|
418 |
Rectangle rectangle = (Rectangle) lvi.getItemRectangle().clone();
|
|
420 | 419 |
if (rectangle == null) |
421 | 420 |
return; |
422 | 421 |
rectangle.setLocation((int) rectangle.getX() - getVisibleRect().x, (int) rectangle.getY() - getVisibleRect().y); |
423 | 422 |
jViewport.scrollRectToVisible(rectangle); |
423 |
((JScrollPane)jViewport.getParent()).getVerticalScrollBar().paintImmediately(((JScrollPane)jViewport.getParent()).getVerticalScrollBar().getVisibleRect()); |
|
424 | 424 |
} |
425 | 425 |
} |
426 | 426 |
} |
... | ... | |
560 | 560 |
((ListViewItem) items.get(i)).setSelected(i == value); |
561 | 561 |
} |
562 | 562 |
viewItem(value); |
563 |
update(getGraphics()); |
|
563 | 564 |
} |
564 | 565 |
|
565 | 566 |
/** |
... | ... | |
701 | 702 |
} |
702 | 703 |
|
703 | 704 |
/** |
704 |
* Mueve el cursor hacia arriba
|
|
705 |
* Mueve el cursor hacia abajo
|
|
705 | 706 |
*/ |
706 |
private void moveUp(boolean refresh) {
|
|
707 |
private void moveDown() {
|
|
707 | 708 |
int selItem = -1; |
708 |
for (int i = items.size() - 1; i >= 0; i--) { |
|
709 |
|
|
710 |
for (int i = 0; i < items.size(); i++) { |
|
709 | 711 |
if (cursorPos == i) |
710 | 712 |
continue; |
711 |
if ((((ListViewItem) items.get(i)).getItemRectangle().y + ((ListViewItem) items.get(i)).getItemRectangle().height) <= ((ListViewItem) items.get(cursorPos)).getItemRectangle().y) {
|
|
713 |
if (((ListViewItem) items.get(i)).getItemRectangle().y >= (((ListViewItem) items.get(cursorPos)).getItemRectangle().y + ((ListViewItem) items.get(cursorPos)).getItemRectangle().height)) {
|
|
712 | 714 |
if (((ListViewItem) items.get(i)).getItemRectangle().x == ((ListViewItem) items.get(cursorPos)).getItemRectangle().x) { |
713 | 715 |
selItem = i; |
714 | 716 |
break; |
... | ... | |
718 | 720 |
|
719 | 721 |
if (selItem != -1) { |
720 | 722 |
cursorPos = selItem; |
721 |
if (refresh) { |
|
722 |
setSelectedIndex(selItem); |
|
723 |
viewItem(selItem); |
|
724 |
} |
|
723 |
setSelectedIndex(selItem); |
|
725 | 724 |
} |
726 | 725 |
} |
727 | 726 |
|
728 | 727 |
/** |
729 |
* Mueve el cursor hacia abajo
|
|
728 |
* Mueve el cursor hacia la izquierda
|
|
730 | 729 |
*/ |
731 |
private void moveDown(boolean refresh) {
|
|
730 |
private void moveLeft() {
|
|
732 | 731 |
int selItem = -1; |
733 |
for (int i = 0; i < items.size(); i++) {
|
|
732 |
for (int i = items.size() - 1; i >= 0; i--) {
|
|
734 | 733 |
if (cursorPos == i) |
735 | 734 |
continue; |
736 |
if (((ListViewItem) items.get(i)).getItemRectangle().y >= (((ListViewItem) items.get(cursorPos)).getItemRectangle().y + ((ListViewItem) items.get(cursorPos)).getItemRectangle().height)) {
|
|
737 |
if (((ListViewItem) items.get(i)).getItemRectangle().x == ((ListViewItem) items.get(cursorPos)).getItemRectangle().x) {
|
|
735 |
if ((((ListViewItem) items.get(i)).getItemRectangle().x + ((ListViewItem) items.get(i)).getItemRectangle().width) <= ((ListViewItem) items.get(cursorPos)).getItemRectangle().x) {
|
|
736 |
if (((ListViewItem) items.get(i)).getItemRectangle().y == ((ListViewItem) items.get(cursorPos)).getItemRectangle().y) {
|
|
738 | 737 |
selItem = i; |
739 | 738 |
break; |
740 | 739 |
} |
... | ... | |
743 | 742 |
|
744 | 743 |
if (selItem != -1) { |
745 | 744 |
cursorPos = selItem; |
746 |
if (refresh) { |
|
747 |
setSelectedIndex(selItem); |
|
748 |
viewItem(selItem); |
|
749 |
} |
|
745 |
setSelectedIndex(selItem); |
|
750 | 746 |
} |
751 | 747 |
} |
752 | 748 |
|
753 | 749 |
/** |
754 |
* Mueve el cursor hacia la izquierda
|
|
750 |
* Mueve el cursor hacia la derecha
|
|
755 | 751 |
*/ |
756 |
private void moveLeft() {
|
|
752 |
private void moveRight() {
|
|
757 | 753 |
int selItem = -1; |
758 |
for (int i = items.size() - 1; i >= 0; i--) {
|
|
754 |
for (int i = 0; i < items.size(); i++) {
|
|
759 | 755 |
if (cursorPos == i) |
760 | 756 |
continue; |
761 |
if ((((ListViewItem) items.get(i)).getItemRectangle().x + ((ListViewItem) items.get(i)).getItemRectangle().width) <= ((ListViewItem) items.get(cursorPos)).getItemRectangle().x) {
|
|
757 |
if (((ListViewItem) items.get(i)).getItemRectangle().x >= (((ListViewItem) items.get(cursorPos)).getItemRectangle().x + ((ListViewItem) items.get(cursorPos)).getItemRectangle().width)) {
|
|
762 | 758 |
if (((ListViewItem) items.get(i)).getItemRectangle().y == ((ListViewItem) items.get(cursorPos)).getItemRectangle().y) { |
763 | 759 |
selItem = i; |
764 | 760 |
break; |
... | ... | |
769 | 765 |
if (selItem != -1) { |
770 | 766 |
cursorPos = selItem; |
771 | 767 |
setSelectedIndex(selItem); |
772 |
viewItem(selItem); |
|
773 | 768 |
} |
774 | 769 |
} |
775 | 770 |
|
776 | 771 |
/** |
777 |
* Mueve el cursor hacia la derecha
|
|
772 |
* Mueve el cursor hacia arriba
|
|
778 | 773 |
*/ |
779 |
private void moveRight() {
|
|
774 |
private void moveUp() {
|
|
780 | 775 |
int selItem = -1; |
781 |
for (int i = 0; i < items.size(); i++) {
|
|
776 |
for (int i = items.size() - 1; i >= 0; i--) {
|
|
782 | 777 |
if (cursorPos == i) |
783 | 778 |
continue; |
784 |
if (((ListViewItem) items.get(i)).getItemRectangle().x >= (((ListViewItem) items.get(cursorPos)).getItemRectangle().x + ((ListViewItem) items.get(cursorPos)).getItemRectangle().width)) {
|
|
785 |
if (((ListViewItem) items.get(i)).getItemRectangle().y == ((ListViewItem) items.get(cursorPos)).getItemRectangle().y) {
|
|
779 |
if ((((ListViewItem) items.get(i)).getItemRectangle().y + ((ListViewItem) items.get(i)).getItemRectangle().height) <= ((ListViewItem) items.get(cursorPos)).getItemRectangle().y) {
|
|
780 |
if (((ListViewItem) items.get(i)).getItemRectangle().x == ((ListViewItem) items.get(cursorPos)).getItemRectangle().x) {
|
|
786 | 781 |
selItem = i; |
787 | 782 |
break; |
788 | 783 |
} |
... | ... | |
792 | 787 |
if (selItem != -1) { |
793 | 788 |
cursorPos = selItem; |
794 | 789 |
setSelectedIndex(selItem); |
795 |
viewItem(selItem); |
|
796 | 790 |
} |
797 | 791 |
} |
798 | 792 |
|
... | ... | |
803 | 797 |
renameItem(cursorPos); |
804 | 798 |
break; |
805 | 799 |
case KeyEvent.VK_DOWN: |
806 |
moveDown(true);
|
|
800 |
moveDown(); |
|
807 | 801 |
break; |
808 | 802 |
case KeyEvent.VK_LEFT: |
809 | 803 |
moveLeft(); |
... | ... | |
812 | 806 |
moveRight(); |
813 | 807 |
break; |
814 | 808 |
case KeyEvent.VK_UP: |
815 |
moveUp(true);
|
|
809 |
moveUp(); |
|
816 | 810 |
break; |
817 | 811 |
case KeyEvent.VK_HOME: |
818 | 812 |
cursorPos = 0; |
819 | 813 |
setSelectedIndex(cursorPos); |
820 |
viewItem(cursorPos); |
|
821 | 814 |
break; |
822 | 815 |
case KeyEvent.VK_END: |
823 | 816 |
cursorPos = items.size() - 1; |
824 | 817 |
setSelectedIndex(cursorPos); |
825 |
viewItem(cursorPos); |
|
826 | 818 |
break; |
827 | 819 |
case KeyEvent.VK_PAGE_UP: |
828 | 820 |
if (items.size() > 0) { |
829 | 821 |
int cont = (int) Math.floor(this.getVisibleRect().getHeight() / ((ListViewItem) items.get(0)).getItemRectangle().height); |
830 | 822 |
for (int i = 0; i < cont; i++) |
831 |
moveUp(false); |
|
832 |
setSelectedIndex(cursorPos); |
|
833 |
viewItem(cursorPos); |
|
823 |
moveUp(); |
|
834 | 824 |
} |
835 | 825 |
break; |
836 | 826 |
case KeyEvent.VK_PAGE_DOWN: |
837 | 827 |
if (items.size() > 0) { |
838 | 828 |
int cont = (int) Math.floor(this.getVisibleRect().getHeight() / ((ListViewItem) items.get(0)).getItemRectangle().height); |
839 | 829 |
for (int i = 0; i < cont; i++) |
840 |
moveDown(false); |
|
841 |
setSelectedIndex(cursorPos); |
|
842 |
viewItem(cursorPos); |
|
830 |
moveDown(); |
|
843 | 831 |
} |
844 | 832 |
break; |
845 | 833 |
} |
... | ... | |
862 | 850 |
switch (e.getKeyCode()) { |
863 | 851 |
case KeyEvent.VK_DOWN: |
864 | 852 |
case KeyEvent.VK_UP: |
853 |
case KeyEvent.VK_LEFT: |
|
854 |
case KeyEvent.VK_RIGHT: |
|
865 | 855 |
case KeyEvent.VK_HOME: |
866 | 856 |
case KeyEvent.VK_END: |
867 | 857 |
case KeyEvent.VK_PAGE_UP: |
Also available in: Unified diff