📄 renderconfig.java
字号:
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.
*/
package org.apache.pluto.driver.services.portal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
*/
public class RenderConfig {
private static final Log LOG =
LogFactory.getLog(RenderConfig.class);
private Map pages;
private String defaultPageId;
// internally used.
private int orderNumberCounter = 0;
private Comparator pageComparator;
public RenderConfig() {
this.pages = new java.util.HashMap();
this.pageComparator = new Comparator() {
public int compare(Object a, Object b) {
PageConfig pa = (PageConfig)a;
PageConfig pb = (PageConfig)b;
if(pa.getOrderNumber() > pb.getOrderNumber()) {
return 1;
}
else if(pa.getOrderNumber() == pb.getOrderNumber()) {
return 0;
}
else {
return -1;
}
}
public boolean equals(Object a) {
return false;
}
};
}
public String getDefaultPageId() {
return defaultPageId;
}
public void setDefaultPageId(String defaultPageId) {
this.defaultPageId = defaultPageId;
}
public List getPages() {
List col = new ArrayList(pages.values());
Collections.sort(col, pageComparator);
return col;
}
public PageConfig getPageConfig(String pageId) {
if (pageId == null || "".equals(pageId)) {
if (LOG.isDebugEnabled()) {
LOG.debug(
"Requested page is null. Returning default: " +
defaultPageId);
}
pageId = defaultPageId;
}
// return (PageConfig) pages.get(pageId);
// TODO: Make sure this is needed.
//This is the PLUTO-251 fix submitted by Charles Severence. Thank you!!!
// Sometimes pages come with a prefix of a slash - if the page is not
// found, and the first character of the pageId is a slash we attempt
// to look up the page without the slash.
PageConfig retval = (PageConfig) pages.get(pageId);
if ( retval == null && pageId.startsWith("/") && pageId.length() > 2 ) {
retval = (PageConfig) pages.get(pageId.substring(1));
}
if (retval == null)
{
LOG.warn("Couldn't find a PageConfig for page ID: [" + pageId + "]");
if ((retval = (PageConfig)pages.get(defaultPageId)) != null)
{
if (LOG.isDebugEnabled())
{
LOG.debug("Returning default page ID: [" + defaultPageId + "]");
}
}
else
{
LOG.error("Could not find default page Id for render config!");
}
}
return retval;
}
public void addPage(PageConfig config) {
config.setOrderNumber(orderNumberCounter++);
pages.put(config.getName(), config);
}
public void removePage(PageConfig config){
pages.remove(config.getName());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -