001 // This file is part of AceWiki. 002 // Copyright 2008-2012, AceWiki developers. 003 // 004 // AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU 005 // Lesser General Public License as published by the Free Software Foundation, either version 3 of 006 // the License, or (at your option) any later version. 007 // 008 // AceWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 009 // even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 010 // Lesser General Public License for more details. 011 // 012 // You should have received a copy of the GNU Lesser General Public License along with AceWiki. If 013 // not, see http://www.gnu.org/licenses/. 014 015 package ch.uzh.ifi.attempto.preditor; 016 017 import java.util.Collections; 018 import java.util.Comparator; 019 import java.util.HashMap; 020 import java.util.List; 021 import java.util.Map; 022 023 import ch.uzh.ifi.attempto.base.ConcreteOption; 024 import ch.uzh.ifi.attempto.base.NextTokenOptions; 025 026 /** 027 * This class is the default implementation of a menu creator. 028 * 029 * @author Tobias Kuhn 030 */ 031 public class DefaultMenuCreator implements MenuCreator { 032 033 private DefaultMenuItemComparator comparator = new DefaultMenuItemComparator(); 034 private Map<String, Integer> colors = new HashMap<String, Integer>(); 035 036 public MenuEntry createMenuEntry(ConcreteOption option) { 037 return new MenuEntry(option, "word"); 038 } 039 040 public List<SpecialMenuItem> createSpecialMenuItems(NextTokenOptions options) { 041 return Collections.emptyList(); 042 } 043 044 public List<String> getMenuGroupOrdering() { 045 return Collections.emptyList(); 046 } 047 048 public int getColorShift(String menuBlockName) { 049 if (colors.containsKey(menuBlockName)) { 050 return colors.get(menuBlockName); 051 } else { 052 return 0; 053 } 054 } 055 056 /** 057 * This methods sets the color shift for the given menu block. It defines the color in which 058 * the menu block is to be displayed. 059 * 060 * @see MenuCreator#getColorShift 061 * @param menuBlockName The name of the menu block for which the color shift should be set. 062 * @param colorShift The color shift value. 063 */ 064 public void setColorShift(String menuBlockName, int colorShift) { 065 colors.put(menuBlockName, colorShift); 066 } 067 068 public Comparator<MenuItem> getMenuItemComparator() { 069 return comparator; 070 } 071 072 }