596 !UIPainter methodsFor:'actions'! |
615 !UIPainter methodsFor:'actions'! |
597 |
616 |
598 accept |
617 accept |
599 |layout| |
618 |layout| |
600 |
619 |
601 tabSelection = layoutTool label ifTrue:[ |
620 objectList removeDependent:self. |
|
621 |
|
622 self isLayoutToolSelected ifTrue:[ |
602 (layout := layoutTool layout) notNil ifTrue:[ |
623 (layout := layoutTool layout) notNil ifTrue:[ |
603 layoutTool layoutType == #Extent ifTrue:[ |
624 layoutTool layoutType == #Extent ifTrue:[ |
604 self painter setExtent:layout |
625 self painter setExtent:layout |
605 ] ifFalse:[ |
626 ] ifFalse:[ |
606 self painter setLayout:layout |
627 self painter setLayout:layout |
607 ] |
628 ] |
608 ] |
629 ] |
609 ] ifFalse:[ |
630 ] ifFalse:[ |
610 tabSelection = 'Help' ifTrue:[ |
631 self isHelpToolSelected ifTrue:[ |
611 activeHelpTool accept |
632 activeHelpTool accept |
612 ]. |
633 ]. |
613 self painter updateFromSpec:(specView specEdited) |
634 self painter updateFromSpec:(specTool specEdited). |
614 ]. |
635 ]. |
615 self cancel |
636 self modifiedChannel value:false. |
616 |
637 objectList addDependent:self. |
617 "Modified: 17.6.1997 / 12:50:59 / cg" |
638 |
618 ! |
639 ! |
619 |
640 |
620 cancel |
641 cancel |
621 "cancel all changes and read back attributes from current view |
642 "cancel all changes and read back attributes from current view |
622 " |
643 " |
623 specView specEdited:(self painter specForSelection). |
644 self modifiedChannel value ifTrue:[ |
624 layoutTool update. |
645 specTool specEdited:(self painter specForSelection). |
625 self modifiedChannel value:false. |
646 layoutTool layoutView:(layoutTool layoutView). |
|
647 self modifiedChannel value:false. |
|
648 ] |
626 ! |
649 ! |
627 |
650 |
628 doubleClick |
651 doubleClick |
629 objectList selectGroup |
652 objectList selectGroup |
630 ! ! |
653 ! ! |
720 ! |
743 ! |
721 |
744 |
722 noteBookView |
745 noteBookView |
723 "automatically generated by UIPainter ..." |
746 "automatically generated by UIPainter ..." |
724 |
747 |
725 |noteBook channel| |
748 |noteBook channel n1 n2| |
726 |
749 |
727 (noteBook := builder bindingAt:#noteBookView) isNil ifTrue:[ |
750 (noteBook := builder bindingAt:#noteBookView) isNil ifTrue:[ |
728 noteBook := View origin:0.0 @0.0 corner:1.0@1.0. |
751 noteBook := View new. |
729 layoutTool := UIPropertyView for:#Dimension in:noteBook. |
752 layoutTool := UILayoutTool new. |
730 specView := UIPropertyView for:#Specification in:noteBook. |
753 specTool := UISpecificationTool new. |
731 channel := self modifiedChannel. |
754 channel := self modifiedChannel. |
|
755 |
732 layoutTool masterApplication:self. |
756 layoutTool masterApplication:self. |
733 specView masterApplication:self. |
757 specTool masterApplication:self. |
|
758 |
|
759 n1 := SubCanvas origin:0.0@0.0 corner:1.0@1.0 in:noteBook. |
|
760 n2 := SubCanvas origin:0.0@0.0 corner:1.0@1.0 in:noteBook. |
|
761 |
|
762 n1 client:layoutTool. |
|
763 specTool builder:(n2 client:specTool). |
|
764 |
|
765 layoutTool masterApplication:self. |
|
766 specTool masterApplication:self. |
734 layoutTool modifiedHolder:channel. |
767 layoutTool modifiedHolder:channel. |
735 specView modifiedHolder:channel. |
768 specTool modifiedHolder:channel. |
736 builder aspectAt:#noteBookView put:noteBook. |
769 builder aspectAt:#noteBookView put:noteBook. |
737 ]. |
770 ]. |
738 ^ noteBook |
771 ^ noteBook |
739 ! |
772 ! |
740 |
773 |
818 ! |
852 ! |
819 |
853 |
820 objectListChanged |
854 objectListChanged |
821 "something changed in the painter view |
855 "something changed in the painter view |
822 " |
856 " |
823 |setSel view slices list spec props size same| |
857 |oldSelection view slices list spec props size| |
824 |
858 |
825 props := objectList selectedProperty. |
859 props := objectList selectedProperty. |
|
860 oldSelection := tabSelection. |
826 tabSelection := nil. |
861 tabSelection := nil. |
827 |
862 |
828 props isNil ifFalse:[ |
863 props isNil ifFalse:[ |
829 view := props view. |
864 view := props view. |
830 spec := props spec copy. |
865 spec := props spec copy. |
831 |
866 |
832 layoutTool forView == view ifFalse:[ |
867 layoutTool layoutView == view ifFalse:[ |
833 slices := spec class slices. |
868 slices := spec class slices. |
834 size := slices size + 1. |
869 size := slices size + 1. |
835 list := Array new:size. |
870 list := Array new:size. |
836 slices keysAndValuesDo:[:i :s|list at:i put:(s first asString)]. |
871 slices keysAndValuesDo:[:i :s|list at:i put:(s first asString)]. |
837 list at:size put:(layoutTool label). |
872 list at:size put:(layoutTool class label). |
838 (self tabList) value:list. |
873 (self tabList) value:list. |
839 ] ifTrue:[ |
874 ] ifTrue:[ |
840 list := self tabList value |
875 list := self tabList value |
841 ]. |
876 ]. |
842 (list findFirst:[:aName| aName = lastSlice]) ~~ 0 ifTrue:[ |
877 (list findFirst:[:n| n = oldSelection ]) ~~ 0 ifTrue:[ |
843 setSel := lastSlice |
878 tabSelection := oldSelection |
|
879 ] ifFalse:[ |
|
880 tabSelection := list first |
844 ] |
881 ] |
845 ]. |
882 ]. |
846 layoutTool forView:view. |
883 layoutTool layoutView:view. |
847 specView specEdited:spec. |
884 specTool specEdited:spec. |
848 self tabModel value:setSel. |
885 |
849 ! ! |
886 tabSelection notNil ifTrue:[ |
850 |
887 self isLayoutToolSelected ifTrue:[ |
851 !UIPainter methodsFor:'file access'! |
888 (self noteBookView subViews at:1) raise |
852 |
889 ] ifFalse:[ |
853 openFile:aFileName |
890 specTool selection:tabSelection. |
854 |aStream | |
891 (self noteBookView subViews at:2) raise |
855 |
892 ] |
856 aStream := FileStream readonlyFileNamed:aFileName. |
893 ]. |
857 |
894 |
858 aStream notNil ifTrue:[ |
895 (builder componentAt:#noteBook) selection:tabSelection. |
859 self painter fileInContentsFrom:aStream. |
896 self modifiedChannel value:false. |
860 aStream close. |
|
861 fileName := aFileName |
|
862 ] |
|
863 |
|
864 |
|
865 ! |
|
866 |
|
867 saveAs:aFileName |
|
868 |aStream| |
|
869 |
|
870 aStream := FileStream newFileNamed:aFileName. |
|
871 |
|
872 aStream notNil ifTrue:[ |
|
873 self painter storeContentsOn:aStream. |
|
874 aStream close. |
|
875 fileName := aFileName |
|
876 ]. |
|
877 |
|
878 ! ! |
897 ! ! |
879 |
898 |
880 !UIPainter methodsFor:'private'! |
899 !UIPainter methodsFor:'private'! |
881 |
900 |
882 painter |
901 painter |
883 ^ objectList painter |
902 ^ objectList painter |
884 ! ! |
903 ! ! |
885 |
904 |
|
905 !UIPainter methodsFor:'queries'! |
|
906 |
|
907 isHelpToolSelected |
|
908 ^ tabSelection = 'Help' |
|
909 ! |
|
910 |
|
911 isLayoutToolSelected |
|
912 ^ tabSelection = layoutTool class label |
|
913 ! ! |
|
914 |
886 !UIPainter methodsFor:'selection'! |
915 !UIPainter methodsFor:'selection'! |
887 |
916 |
888 tabSelection |
917 tabSelection |
889 ^ tabSelection |
918 ^ tabSelection |
890 ! |
919 ! |
891 |
920 |
892 tabSelection:something |
921 tabSelection:something |
893 |specEdited slices spec idx| |
922 |raiseViewIdx| |
894 |
923 |
895 something isNil ifTrue:[^ self]. |
924 something notNil ifTrue:[ |
896 |
925 raiseViewIdx := 1. |
897 tabSelection := something. |
926 tabSelection := something. |
898 |
927 |
899 (specEdited := specView specEdited) notNil ifTrue:[ |
928 self isLayoutToolSelected ifFalse:[ |
900 slices := specEdited class slices. |
929 specTool selection:tabSelection. |
901 lastSlice := tabSelection. |
930 raiseViewIdx := 2 |
902 |
|
903 idx:= slices findFirst:[:aSlice| aSlice first = tabSelection ]. |
|
904 idx == 0 ifTrue:[ |
|
905 layoutTool update. |
|
906 ^ layoutTool raise. |
|
907 ]. |
931 ]. |
908 spec := specEdited class perform:((slices at:idx) last). |
932 (self noteBookView subViews at:raiseViewIdx) raise. |
909 ]. |
933 self cancel. |
910 specView raise. |
|
911 |
|
912 specEdited isNil ifTrue:[ |
|
913 specView buildFromSpec:nil |
|
914 ] ifFalse:[ |
|
915 specView buildFromSpec:spec |
|
916 ] |
934 ] |
917 ! ! |
935 ! ! |
918 |
936 |
919 !UIPainter methodsFor:'startup / release'! |
937 !UIPainter methodsFor:'startup / release'! |
920 |
938 |