comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/CrossSectionChartThemePanel.java @ 1452:fa63366ba115

Improved area creation GUI. flys-client/trunk@3477 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Tue, 20 Dec 2011 06:54:49 +0000
parents 8da36efc839a
children 3d9f81c3f00d
comparison
equal deleted inserted replaced
1451:bc830e564b6d 1452:fa63366ba115
119 */ 119 */
120 public void feedTellArea(final String artifact, Theme under, Theme over) { 120 public void feedTellArea(final String artifact, Theme under, Theme over) {
121 121
122 Data[] feedData; 122 Data[] feedData;
123 123
124 if (over != null) { 124 if (over != null && under != null) {
125 feedData = new Data[] { 125 feedData = new Data[] {
126 DefaultData.createSimpleStringData("area.curve_under", 126 DefaultData.createSimpleStringData("area.curve_under",
127 under.getArtifact() + under.getIndex()), 127 under.getArtifact() + under.getIndex()),
128 DefaultData.createSimpleStringData("area.curve_under", 128 DefaultData.createSimpleStringData("area.curve_over",
129 under.getArtifact() + under.getIndex()), 129 over.getArtifact() + over.getIndex()),
130 DefaultData.createSimpleStringData("area.name", 130 DefaultData.createSimpleStringData("area.name",
131 over.getDescription() + " / " + under.getDescription()) 131 over.getDescription() + " / " + under.getDescription()),
132 DefaultData.createSimpleStringData("area.facet",
133 "cross_section.area")
132 }; 134 };
133 } 135 GWT.log("Have over and under");
134 else { 136 }
137 else if (over == null && under != null) {
135 feedData = new Data[] { 138 feedData = new Data[] {
136 DefaultData.createSimpleStringData("area.curve_under", 139 DefaultData.createSimpleStringData("area.curve_under",
137 under.getArtifact() + under.getIndex()), 140 under.getArtifact() + under.getIndex()),
138 DefaultData.createSimpleStringData("area.name", 141 DefaultData.createSimpleStringData("area.name",
139 under.getDescription() + " / " + MSG.getString("x_axis")) 142 under.getDescription() + " / " + MSG.getString("x_axis")),
143 DefaultData.createSimpleStringData("area.facet",
144 "cross_section.area")
140 }; 145 };
141 } 146 GWT.log("Have under only");
147 }
148 else if (over != null && under == null) {
149 feedData = new Data[] {
150 DefaultData.createSimpleStringData("area.curve_over",
151 over.getArtifact() + over.getIndex()),
152 DefaultData.createSimpleStringData("area.name",
153 MSG.getString("x_axis") + " / " + over.getDescription()),
154 DefaultData.createSimpleStringData("area.facet",
155 "cross_section.area")
156 };
157 GWT.log("Have over only");
158 }
159 else {
160 GWT.log("Missing Data for area painting.");
161 return;
162 }
163
142 164
143 feedService.feed( 165 feedService.feed(
144 Config.getInstance().getLocale(), 166 Config.getInstance().getLocale(),
145 new DefaultArtifact(artifact, "TODO:hash"), 167 new DefaultArtifact(artifact, "TODO:hash"),
146 feedData, 168 feedData,
550 /** 572 /**
551 * Create and parameterize a new area artifact. 573 * Create and parameterize a new area artifact.
552 * @param under 574 * @param under
553 * @param over if null, something. 575 * @param over if null, something.
554 */ 576 */
555 public void createAreaArtifact(final Theme under, final Theme over) { 577 public void createAreaArtifact(
578 final Theme under,
579 final Theme over,
580 boolean between
581 ) {
556 Config config = Config.getInstance(); 582 Config config = Config.getInstance();
557 String locale = config.getLocale(); 583 String locale = config.getLocale();
558 584
559 Recommendation area = new Recommendation( 585 Recommendation area = new Recommendation(
560 "area", 586 "area",
590 protected Menu getSingleContextMenu(final ListGridRecord[] records) { 616 protected Menu getSingleContextMenu(final ListGridRecord[] records) {
591 Menu menu = super.getSingleContextMenu(records); 617 Menu menu = super.getSingleContextMenu(records);
592 618
593 final Theme facetTheme = ((FacetRecord)records[0]).getTheme(); 619 final Theme facetTheme = ((FacetRecord)records[0]).getTheme();
594 String thisItem = facetTheme.getDescription(); 620 String thisItem = facetTheme.getDescription();
595 if (facetTheme.getFacet().equals("area")) { 621 if (facetTheme.getFacet().equals("area") ||
622 facetTheme.getFacet().equals("cross_section.area")
623 ) {
596 return menu; 624 return menu;
597 } 625 }
598 626
599 menu.addItem(createSeparator()); 627 menu.addItem(createSeparator());
600 628
603 MenuItem areaMenuItem = new MenuItem("New Area..."); 631 MenuItem areaMenuItem = new MenuItem("New Area...");
604 Menu areaMenu = new Menu(); 632 Menu areaMenu = new Menu();
605 633
606 ThemeList themes = getThemeList(); 634 ThemeList themes = getThemeList();
607 int nThemes = themes.getThemeCount(); 635 int nThemes = themes.getThemeCount();
636
637 MenuItem underMenuItem = new MenuItem("Under ...");
638 Menu underMenu = new Menu();
608 for (int i = 0; i < nThemes; i++) { 639 for (int i = 0; i < nThemes; i++) {
609 final Theme theme = themes.getThemeAt(i+1); 640 final Theme theme = themes.getThemeAt(i+1);
610 if (theme.getDescription().equals(thisItem) 641 if (theme.getDescription().equals(thisItem)
611 || theme.getFacet().equals("area")) { 642 || theme.getFacet().equals("area")
643 || theme.getFacet().equals("cross_section.area")
644 ) {
612 continue; 645 continue;
613 } 646 }
614 MenuItem againster = new MenuItem(theme.getDescription()); 647 MenuItem againster = new MenuItem(theme.getDescription());
615 areaMenu.addItem(againster); 648 underMenu.addItem(againster);
616 649
617 againster.addClickHandler(new ClickHandler() { 650 againster.addClickHandler(new ClickHandler() {
618 public void onClick(MenuItemClickEvent evt) { 651 public void onClick(MenuItemClickEvent evt) {
619 disable(); 652 disable();
620 createAreaArtifact(facetTheme, theme); 653 createAreaArtifact(theme, facetTheme, false);
621 } 654 }
622 }); 655 });
623 } 656 }
624 657
625 MenuItem underMenuItem = new MenuItem("Under ..."); 658 MenuItem overMenuItem = new MenuItem("Over ...");
626 underMenuItem.addClickHandler(new ClickHandler() { 659 Menu overMenu = new Menu();
660 for (int i = 0; i < nThemes; i++) {
661 final Theme theme = themes.getThemeAt(i+1);
662 if (theme.getDescription().equals(thisItem)
663 || theme.getFacet().equals("area")
664 || theme.getFacet().equals("cross_section.area")
665 ) {
666 continue;
667 }
668 MenuItem againster = new MenuItem(theme.getDescription());
669 overMenu.addItem(againster);
670
671 againster.addClickHandler(new ClickHandler() {
672 public void onClick(MenuItemClickEvent evt) {
673 disable();
674 createAreaArtifact(facetTheme, theme, false);
675 }
676 });
677 }
678 overMenu.addItem(createSeparator());
679 MenuItem againstAxis = new MenuItem(MSG.getString("x_axis"));
680 againstAxis.addClickHandler(new ClickHandler() {
627 public void onClick(MenuItemClickEvent evt) { 681 public void onClick(MenuItemClickEvent evt) {
628 disable(); 682 disable();
629 createAreaArtifact(facetTheme, null); 683 createAreaArtifact(facetTheme, null, false);
630 } 684 }
631 }); 685 });
632 MenuItem overMenuItem = new MenuItem("Over ..."); 686 overMenu.addItem(againstAxis);
633 overMenuItem.addClickHandler(new ClickHandler() { 687
634 public void onClick(MenuItemClickEvent evt) { 688 MenuItem betweenMenuItem = new MenuItem("Between ...");
635 disable(); 689 Menu betweenMenu = new Menu();
636 createAreaArtifact(facetTheme, null); 690 for (int i = 0; i < nThemes; i++) {
637 } 691 final Theme theme = themes.getThemeAt(i+1);
638 }); 692 if (theme.getDescription().equals(thisItem)
639 areaMenu.addItem(createSeparator()); 693 || theme.getFacet().equals("area")
694 || theme.getFacet().equals("cross_section.area")
695 ) {
696 continue;
697 }
698 MenuItem againster = new MenuItem(theme.getDescription());
699 betweenMenu.addItem(againster);
700
701 againster.addClickHandler(new ClickHandler() {
702 public void onClick(MenuItemClickEvent evt) {
703 disable();
704 createAreaArtifact(facetTheme, theme, true);
705 }
706 });
707 }
708 betweenMenu.addItem(createSeparator());
709 betweenMenu.addItem(againstAxis);
710
711 overMenuItem.setSubmenu(overMenu);
712 underMenuItem.setSubmenu(underMenu);
713 betweenMenuItem.setSubmenu(betweenMenu);
714
715 areaMenu.addItem(overMenuItem);
640 areaMenu.addItem(underMenuItem); 716 areaMenu.addItem(underMenuItem);
641 areaMenu.addItem(overMenuItem); 717 areaMenu.addItem(betweenMenuItem);
642 718
643 areaMenuItem.setSubmenu(areaMenu); 719 areaMenuItem.setSubmenu(areaMenu);
644 menu.addItem(areaMenuItem); 720 menu.addItem(areaMenuItem);
645 721
646 return menu; 722 return menu;

http://dive4elements.wald.intevation.org