Revision 43

View differences:

trunk/org.gvsig.app.document.layout.app/org.gvsig.app.document.layout.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/fframes/FFrameView.java
901 901
        return true;
902 902
    }
903 903

  
904
    /**
905
     * DOCUMENT ME!
904
    /*
905
     * This was causing issues with the notifications
906
     * because different instances were considered the same
907
     * after cloning a frame (the frame is cloned for example
908
     * when the user changes size of frame)
906 909
     * 
907
     * @param arg0
908
     *            DOCUMENT ME!
909
     * 
910
     * @return DOCUMENT ME!
911
     */
912 910
    public boolean equals(Object arg0) {
913 911
        return this.compare(arg0);
914 912
    }
913
    */
915 914

  
916 915
    public void refresh() {
917 916
        if (viewDocument != null
......
940 939
        }
941 940
    }
942 941

  
943
    protected void cloneActions(IFFrame frame) {
942
    /**
943
     * This method deals with places where this fframeview and the cloned
944
     * fframeview (frame) are registered as listeners. The goal should be
945
     * leaving the cloned instance (frame) as listener in the same way
946
     * that 'this' instance is doing.
947
     */
948
    protected void cloneActions(FFrameView frame) {
944 949
        if (viewDocument == null || viewDocument.getMapContext() == null) {
945 950
            return;
946 951
        }
952
        
953
        frame.setTypeScale(this.getTypeScale());
954
        frame.setLinked(linked);
955
        
947 956
        if (linked) {
948 957
            if (getTypeScale() == AUTOMATICO) {
949
                viewDocument.getMapContext().getViewPort().addViewPortListener(this);
950
                viewDocument.getMapContext().addLayerListener(this);
958
                frame.viewDocument.getMapContext().getViewPort().addViewPortListener(frame);
959
                frame.viewDocument.getMapContext().addLayerListener(frame);
951 960
            } else
952 961
                if (getTypeScale() == CONSTANTE) {
953
                    viewDocument.getMapContext().getViewPort()
954
                        .removeViewPortListener(this);
955
                    viewDocument.getMapContext().addLayerListener(this);
962
                    frame.viewDocument.getMapContext().getViewPort().removeViewPortListener(frame);
963
                    frame.viewDocument.getMapContext().addLayerListener(frame);
956 964
                } else
957 965
                    if (getTypeScale() == MANUAL) {
958
                        viewDocument.getMapContext().getViewPort()
959
                            .removeViewPortListener(this);
960
                        viewDocument.getMapContext().addLayerListener(this);
966
                        frame.viewDocument.getMapContext().getViewPort().removeViewPortListener(frame);
967
                        frame.viewDocument.getMapContext().addLayerListener(frame);
961 968
                    }
962 969
        } else
963 970
            if (!linked) {
964 971
                if (getTypeScale() == AUTOMATICO) {
965
                    viewDocument.getMapContext().getViewPort()
966
                        .addViewPortListener(this);
972
                    frame.viewDocument.getMapContext().getViewPort().addViewPortListener(frame);
967 973
                } else
968 974
                    if (getTypeScale() == CONSTANTE) {
969
                        viewDocument.getMapContext().getViewPort()
970
                            .removeViewPortListener(this);
975
                        frame.viewDocument.getMapContext().getViewPort().removeViewPortListener(frame);
971 976
                    } else
972 977
                        if (getTypeScale() == MANUAL) {
973
                            viewDocument.getMapContext().getViewPort()
974
                                .removeViewPortListener(this);
978
                            frame.viewDocument.getMapContext().getViewPort().removeViewPortListener(frame);
975 979
                        }
976 980
            }
981
        /*
977 982
        ((FFrameView) frame).viewDocument.getMapContext().removeLayerListener(
978 983
            (FFrameView) frame);
979 984
        ((FFrameView) frame).viewDocument.getMapContext().getViewPort()
980 985
            .removeViewPortListener((FFrameView) frame);
986
        */
981 987
    }
982 988

  
983 989
    public Object clone() throws CloneNotSupportedException {

Also available in: Unified diff