📄 guiresourcemanager.java
字号:
/*******************************************************************************
* Copyright (c) 2004 Stefan Zeiger and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.novocode.com/legal/epl-v10.html
*
* Contributors:
* Stefan Zeiger (szeiger@novocode.com) - initial API and implementation
*******************************************************************************/
package com.novocode.naf.gui;
import java.util.*;
import org.w3c.dom.Element;
import com.novocode.naf.app.*;
import com.novocode.naf.gui.layout.*;
import com.novocode.naf.resource.*;
/**
* Creates GUI blueprints from NAF resource files.
*
* @author Stefan Zeiger (szeiger@novocode.com)
* @since Nov 24, 2003
*/
public final class GUIResourceManager extends ResourceManager
{
private Map<String, Class> layoutClasses = new HashMap<String, Class>();
/**
* Create a new ResourceManager.
*/
public GUIResourceManager() throws NAFException
{
setRootComponent(getResource(getClass().getResource("default-imports.naf")));
//loadElementClassMappings("gui-components.properties");
setLayoutClass("fill", NGFillLayout.class);
setLayoutClass("grid", NGGridLayout.class);
setLayoutClass("row", NGRowLayout.class);
setLayoutClass("form", NGFormLayout.class);
setLayoutClass("stack", NGStackLayout.class);
setLayoutClass("table-wrap", NGTableWrapLayout.class);
}
public void setLayoutClass(String name, Class clazz)
{
if(clazz == null) layoutClasses.remove(name);
else layoutClasses.put(name, clazz);
}
public NGLayout createLayout(Element e, NGComponent parent) throws NAFException
{
String layoutType = e.getAttribute("type");
Class<?> lcClass = layoutClasses.get(layoutType);
if(lcClass == null) throw new NAFException("Unsupported layout type \""+layoutType+"\"");
NGLayout nglayout;
try
{
nglayout = (NGLayout)lcClass.newInstance();
}
catch(Exception ex) { throw new NAFException("Error instantiating layout class "+lcClass.getName(), ex); }
nglayout.init(lcClass, e, parent.getResourceURL(), null, this, parent);
return nglayout;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -