
org.efaps.update.schema.ui.MenuUpdate Maven / Gradle / Ivy
/*
* Copyright 2003 - 2013 The eFaps Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Revision: $Rev: 8848 $
* Last Changed: $Date: 2013-02-19 10:49:59 -0500 (Tue, 19 Feb 2013) $
* Last Changed By: $Author: [email protected] $
*/
package org.efaps.update.schema.ui;
import java.net.URL;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.efaps.update.LinkInstance;
/**
* @author The eFaps Team
* @version $Id: MenuUpdate.java 8848 2013-02-19 15:49:59Z [email protected] $
*/
public class MenuUpdate
extends CommandUpdate
{
/**
* The links for the Menu to be updated.
*/
protected static final Set ALLLINKS = new HashSet();
/** Link from menu to child command / menu. */
private static final Link LINK2CHILD = new OrderedLink("Admin_UI_Menu2Command",
"FromMenu",
"Admin_UI_Command", "ToCommand");
/** Link from menu to type as type tree menu. */
private static final Link LINK2TYPE = new Link("Admin_UI_LinkIsTypeTreeFor",
"From",
"Admin_DataModel_Type", "To");
static {
MenuUpdate.ALLLINKS.add(MenuUpdate.LINK2CHILD);
MenuUpdate.ALLLINKS.add(MenuUpdate.LINK2TYPE);
MenuUpdate.ALLLINKS.addAll(CommandUpdate.ALLLINKS);
}
/**
* @param _url URL to the Configuration Item.
*/
public MenuUpdate(final URL _url)
{
super(_url, "Admin_UI_Menu", MenuUpdate.ALLLINKS);
}
/**
*
* @param _url URL to the Configuration Item.
* @param _typeName Name of the type
* @param _allLinks link definitions
*/
protected MenuUpdate(final URL _url,
final String _typeName,
final Set _allLinks)
{
super(_url, _typeName, _allLinks);
}
/**
* Creates new instance of class {@link MenuDefinition}.
*
* @return new definition instance
* @see MenuDefinition
*/
@Override
protected AbstractDefinition newDefinition()
{
return new MenuDefinition();
}
/**
*
*/
protected class MenuDefinition
extends CommandDefinition
{
@Override
protected void readXML(final List _tags,
final Map _attributes,
final String _text)
{
final String value = _tags.get(0);
if ("childs".equals(value)) {
if (_tags.size() > 1) {
final String subValue = _tags.get(1);
if ("child".equals(subValue)) {
// assigns / removes child commands / menus to this menu
if (!"remove".equals(_attributes.get("modus"))) {
final LinkInstance child = new LinkInstance(_text);
final String order = _attributes.get("order");
if (order != null) {
child.setOrder(Integer.parseInt(order));
}
addLink(MenuUpdate.LINK2CHILD, child);
}
} else {
super.readXML(_tags, _attributes, _text);
}
}
} else if ("type".equals(value)) {
// assigns a type the menu for which this menu instance is the type
// tree menu
addLink(MenuUpdate.LINK2TYPE, new LinkInstance(_text));
} else {
super.readXML(_tags, _attributes, _text);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy