日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ICEfaces抄袭PrimeFaces

發(fā)布時間:2024/4/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ICEfaces抄袭PrimeFaces 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ICEfaces涉嫌抄襲PrimeFaces

ICEfaces 3發(fā)布后,本來我是很激動的,以為這是一個偉大的版本。但是,PrimeFaces的同行們發(fā)現(xiàn)了ICEfaces抄襲了PrimeFaces的部分代碼。ICEfaces的行為真令人失望!


由于PrimeFaces和ICEfaces都是開源產(chǎn)品,因此抄襲在法律上沒有問題。但是在道德上,則無法過關(guān)。抄襲的代碼對比如下:

一、PrimeFaces PanelRenderer

package org.primefaces.component.panel;import java.io.IOException; import java.util.Map;import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.context.ResponseWriter;import org.primefaces.component.menu.Menu; import org.primefaces.renderkit.CoreRenderer;public class PanelRenderer extends CoreRenderer {@Overridepublic void decode(FacesContext context, UIComponent component) {Panel panel = (Panel) component;String clientId = panel.getClientId(context);Map params = context.getExternalContext().getRequestParameterMap();//Restore toggle stateString collapsedParam = params.get(clientId + "_collapsed");if(collapsedParam != null) {panel.setCollapsed(Boolean.valueOf(collapsedParam));}//Restore visibility stateString visibleParam = params.get(clientId + "_visible");if(visibleParam != null) {panel.setVisible(Boolean.valueOf(visibleParam));}decodeBehaviors(context, component);}@Overridepublic void encodeEnd(FacesContext facesContext, UIComponent component) throws IOException {Panel panel = (Panel) component;encodeMarkup(facesContext, panel);encodeScript(facesContext, panel);}protected void encodeScript(FacesContext context, Panel panel) throws IOException {ResponseWriter writer = context.getResponseWriter();String clientId = panel.getClientId(context);startScript(writer, clientId);writer.write("PrimeFaces.cw('Panel','" + panel.resolveWidgetVar() + "',{");writer.write("id:'" + clientId + "'");//Toggle configurationif(panel.isToggleable()) {writer.write(",toggleable:true");writer.write(",toggleSpeed:" + panel.getToggleSpeed());writer.write(",collapsed:" + panel.isCollapsed());}//Toggle configurationif(panel.isClosable()) {writer.write(",closable:true");writer.write(",closeSpeed:" + panel.getCloseSpeed());}//Options menu configurationif(panel.getOptionsMenu() != null) {writer.write(",hasMenu:true");}encodeClientBehaviors(context, panel);writer.write("});");endScript(writer);}protected void encodeMarkup(FacesContext context, Panel panel) throws IOException {ResponseWriter writer = context.getResponseWriter();String clientId = panel.getClientId(context);Menu optionsMenu = panel.getOptionsMenu();writer.startElement("div", null);writer.writeAttribute("id", clientId, null);String styleClass = panel.getStyleClass() != null ? Panel.PANEL_CLASS + " " + panel.getStyleClass() : Panel.PANEL_CLASS;styleClass = panel.isVisible() ? styleClass : styleClass + " ui-helper-hidden";writer.writeAttribute("class", styleClass, "styleClass");if(panel.getStyle() != null) {writer.writeAttribute("style", panel.getStyle(), "style");}encodeHeader(context, panel);encodeContent(context, panel);encodeFooter(context, panel);if(panel.isToggleable()) {encodeStateHolder(context, panel, clientId + "_collapsed", String.valueOf(panel.isCollapsed()));}if(panel.isClosable()) {encodeStateHolder(context, panel, clientId + "_visible", String.valueOf(panel.isVisible()));}if (optionsMenu != null) {optionsMenu.setPosition("dynamic");optionsMenu.setTrigger(clientId + "_menu");optionsMenu.setMy("left top");optionsMenu.setAt("left bottom");optionsMenu.encodeAll(context);}writer.endElement("div");}protected void encodeHeader(FacesContext context, Panel panel) throws IOException {ResponseWriter writer = context.getResponseWriter();String widgetVar = panel.resolveWidgetVar();UIComponent header = panel.getFacet("header");String headerText = panel.getHeader();String clientId = panel.getClientId(context);if(headerText == null && header == null) {return;}writer.startElement("div", null);writer.writeAttribute("id", panel.getClientId(context) + "_header", null);writer.writeAttribute("class", Panel.PANEL_TITLEBAR_CLASS, null);//Titlewriter.startElement("span", null);writer.writeAttribute("class", Panel.PANEL_TITLE_CLASS, null);if(header != null) {renderChild(context, header);} else if(headerText != null) {writer.write(headerText);}writer.endElement("span");//Optionsif(panel.isClosable()) {encodeIcon(context, panel, "ui-icon-closethick", clientId + "_closer", panel.getCloseTitle());}if(panel.isToggleable()) {String icon = panel.isCollapsed() ? "ui-icon-plusthick" : "ui-icon-minusthick";encodeIcon(context, panel, icon, clientId + "_toggler", panel.getToggleTitle());}if(panel.getOptionsMenu() != null) {encodeIcon(context, panel, "ui-icon-gear", clientId + "_menu", panel.getMenuTitle());}writer.endElement("div");}protected void encodeContent(FacesContext facesContext, Panel panel) throws IOException {ResponseWriter writer = facesContext.getResponseWriter();writer.startElement("div", null);writer.writeAttribute("id", panel.getClientId() + "_content", null);writer.writeAttribute("class", Panel.PANEL_CONTENT_CLASS, null);if (panel.isCollapsed()) {writer.writeAttribute("style", "display:none", null);}renderChildren(facesContext, panel);writer.endElement("div");}protected void encodeFooter(FacesContext facesContext, Panel panel) throws IOException {ResponseWriter writer = facesContext.getResponseWriter();UIComponent footer = panel.getFacet("footer");String footerText = panel.getFooter();if (footer != null || footerText != null) {writer.startElement("div", null);writer.writeAttribute("id", panel.getClientId(facesContext) + "_footer", null);writer.writeAttribute("class", Panel.PANEL_FOOTER_CLASS, null);if (footer != null) {renderChild(facesContext, footer);} else if (footerText != null) {writer.write(footerText);}writer.endElement("div");}}protected void encodeIcon(FacesContext context, Panel panel, String iconClass, String id, String title) throws IOException {ResponseWriter writer = context.getResponseWriter();writer.startElement("a", null);writer.writeAttribute("href", "javascript:void(0)", null);writer.writeAttribute("class", Panel.PANEL_TITLE_ICON_CLASS, null);if(title != null) {writer.writeAttribute("title", title, null);}writer.startElement("span", null);if(id != null) {writer.writeAttribute("id", id, null);}writer.writeAttribute("class", "ui-icon " + iconClass, null);writer.endElement("span");writer.endElement("a");}protected void encodeStateHolder(FacesContext context, Panel panel, String name, String value) throws IOException {ResponseWriter writer = context.getResponseWriter();writer.startElement("input", null);writer.writeAttribute("type", "hidden", null);writer.writeAttribute("id", name, null);writer.writeAttribute("name", name, null);writer.writeAttribute("value", value, null);writer.endElement("input");}@Overridepublic void encodeChildren(FacesContext context, UIComponent component) throws IOException {//Do nothing}@Overridepublic boolean getRendersChildren() {return true;} }

二、IceFaces PanelRendererpackage org.icefaces.ace.component.panel;import java.io.IOException; import java.util.Map;import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.context.ResponseWriter;import org.icefaces.ace.component.menu.Menu; import org.icefaces.ace.renderkit.CoreRenderer;import org.icefaces.ace.util.Utils; import org.icefaces.ace.util.JSONBuilder; import org.icefaces.render.MandatoryResourceComponent;@MandatoryResourceComponent(tagName="panel", value="org.icefaces.ace.component.panel.Panel") public class PanelRenderer extends CoreRenderer {@Overridepublic void decode(FacesContext context, UIComponent component) {Panel panel = (Panel) component;String clientId = panel.getClientId(context);Map params = context.getExternalContext().getRequestParameterMap();//Restore toggle stateString collapsedParam = params.get(clientId + "_collapsed");if(collapsedParam != null) {panel.setCollapsed(Boolean.valueOf(collapsedParam));}//Restore visibility stateString visibleParam = params.get(clientId + "_visible");if(visibleParam != null) {panel.setVisible(Boolean.valueOf(visibleParam));}decodeBehaviors(context, component);}@Overridepublic void encodeEnd(FacesContext facesContext, UIComponent component) throws IOException {Panel panel = (Panel) component;encodeMarkup(facesContext, panel);encodeScript(facesContext, panel);}protected void encodeScript(FacesContext context, Panel panel) throws IOException {ResponseWriter writer = context.getResponseWriter();String clientId = panel.getClientId(context);writer.startElement("script", null);writer.writeAttribute("type", "text/javascript", null);writer.write(this.resolveWidgetVar(panel) + " = new ");JSONBuilder jb = JSONBuilder.create();jb.beginFunction("ice.ace.Panel").item(clientId).beginMap().entry("visible", panel.isVisible());//Toggle configurationif(panel.isToggleable()) {jb.entry("toggleable", true);jb.entry("toggleSpeed", panel.getToggleSpeed());jb.entry("collapsed", panel.isCollapsed());}//Toggle configurationif(panel.isClosable()) {jb.entry("closable", true);jb.entry("closeSpeed", panel.getCloseSpeed());}//Options menu configurationif(panel.getOptionsMenu() != null) {jb.entry("hasMenu", true);}encodeClientBehaviors(context, panel, jb);jb.endMap().endFunction();writer.write(jb.toString());writer.endElement("script");}protected void encodeMarkup(FacesContext context, Panel panel) throws IOException {ResponseWriter writer = context.getResponseWriter();String clientId = panel.getClientId(context);Menu optionsMenu = panel.getOptionsMenu();writer.startElement("div", null);writer.writeAttribute("id", clientId, null);String styleClass = panel.getStyleClass() ;Utils.writeConcatenatedStyleClasses(writer, Panel.PANEL_CLASS, styleClass);String style = panel.getStyle();if(style != null) {writer.writeAttribute("style", style, "style");}encodeHeader(context, panel);encodeContent(context, panel);encodeFooter(context, panel);if(panel.isToggleable()) {encodeStateHolder(context, panel, clientId + "_collapsed", String.valueOf(panel.isCollapsed()));}if(panel.isClosable()) {encodeStateHolder(context, panel, clientId + "_visible", String.valueOf(panel.isVisible()));}if (optionsMenu != null) {optionsMenu.setPosition("dynamic");optionsMenu.setTrigger(clientId + "_menu");optionsMenu.setMy("left top");optionsMenu.setAt("left bottom");optionsMenu.encodeAll(context);}writer.endElement("div");}protected void encodeHeader(FacesContext context, Panel panel) throws IOException {ResponseWriter writer = context.getResponseWriter();String widgetVar = this.resolveWidgetVar(panel);UIComponent header = panel.getFacet("header");String headerText = panel.getHeader();String clientId = panel.getClientId(context);if(headerText == null && header == null) {return;}writer.startElement("div", null);writer.writeAttribute("id", clientId + "_header", null);writer.writeAttribute("class", Panel.PANEL_TITLEBAR_CLASS, null);//Titlewriter.startElement("span", null);writer.writeAttribute("class", Panel.PANEL_TITLE_CLASS, null);if(header != null) {renderChild(context, header);} else if(headerText != null) {writer.write(headerText);}writer.endElement("span");//Optionsif(panel.isClosable()) {encodeIcon(context, panel, "ui-icon-closethick", clientId + "_closer");}if(panel.isToggleable()) {String icon = panel.isCollapsed() ? "ui-icon-plusthick" : "ui-icon-minusthick";encodeIcon(context, panel, icon, clientId + "_toggler");}if(panel.getOptionsMenu() != null) {encodeIcon(context, panel, "ui-icon-gear", clientId + "_menu");}writer.endElement("div");}protected void encodeContent(FacesContext facesContext, Panel panel) throws IOException {ResponseWriter writer = facesContext.getResponseWriter();writer.startElement("div", null);writer.writeAttribute("id", panel.getClientId() + "_content", null);writer.writeAttribute("class", Panel.PANEL_CONTENT_CLASS, null);if (panel.isCollapsed()) {writer.writeAttribute("style", "display:none", null);}renderChildren(facesContext, panel);writer.endElement("div");}protected void encodeFooter(FacesContext facesContext, Panel panel) throws IOException {ResponseWriter writer = facesContext.getResponseWriter();UIComponent footer = panel.getFacet("footer");String footerText = panel.getFooter();if (footer != null || footerText != null) {writer.startElement("div", null);writer.writeAttribute("id", panel.getClientId(facesContext) + "_footer", null);writer.writeAttribute("class", Panel.PANEL_FOOTER_CLASS, null);if (footer != null) {renderChild(facesContext, footer);} else if (footerText != null) {writer.write(footerText);}writer.endElement("div");}}protected void encodeIcon(FacesContext context, Panel panel, String iconClass, String id) throws IOException {ResponseWriter writer = context.getResponseWriter();writer.startElement("a", null);writer.writeAttribute("class", Panel.PANEL_TITLE_ICON_CLASS, null);writer.startElement("span", null);if(id != null) {writer.writeAttribute("id", id, null);}writer.writeAttribute("class", "ui-icon " + iconClass, null);writer.endElement("span");writer.endElement("a");}protected void encodeStateHolder(FacesContext context, Panel panel, String name, String value) throws IOException {ResponseWriter writer = context.getResponseWriter();writer.startElement("input", null);writer.writeAttribute("type", "hidden", null);writer.writeAttribute("id", name, null);writer.writeAttribute("name", name, null);writer.writeAttribute("value", value, null);writer.endElement("input");}@Overridepublic void encodeChildren(FacesContext context, UIComponent component) throws IOException {//Do nothing}@Overridepublic boolean getRendersChildren() {return true;} }
三、PrimeFaces Panel.js/*** PrimeFaces Panel Widget*/ PrimeFaces.widget.Panel = function(cfg) {this.cfg = cfg;this.id = this.cfg.id;this.jqId = PrimeFaces.escapeClientId(this.id);if(this.cfg.toggleable) {this.toggler = $(this.jqId + '_toggler');this.toggleStateHolder = $(this.jqId + '_collapsed');this.content = $(this.jqId + '_content');this.setupToggleTrigger();}if(this.cfg.closable) {this.visibleStateHolder = $(this.jqId + "_visible");this.setupCloseTrigger();}if(this.cfg.hasMenu) {this.visibleStateHolder = $(this.jqId + "_visible");this.setupMenuTrigger();}this.postConstruct(); }PrimeFaces.extend(PrimeFaces.widget.Panel, PrimeFaces.widget.BaseWidget);PrimeFaces.widget.Panel.prototype.toggle = function() {if(this.cfg.collapsed) {this.toggler.removeClass('ui-icon-plusthick').addClass('ui-icon-minusthick');this.cfg.collapsed = false;this.toggleStateHolder.val(false);}else {this.toggler.removeClass('ui-icon-minusthick').addClass('ui-icon-plusthick');this.cfg.collapsed = true;this.toggleStateHolder.val(true);}var _self = this;this.content.slideToggle(this.cfg.toggleSpeed,function(e) {if(_self.cfg.behaviors) {var toggleBehavior = _self.cfg.behaviors['toggle'];if(toggleBehavior) {toggleBehavior.call(_self, e);}}}); }PrimeFaces.widget.Panel.prototype.close = function() {this.visibleStateHolder.val(false);var _self = this;$(this.jqId).fadeOut(this.cfg.closeSpeed,function(e) {if(_self.cfg.behaviors) {var closeBehavior = _self.cfg.behaviors['close'];if(closeBehavior) {closeBehavior.call(_self, e);}}}); }PrimeFaces.widget.Panel.prototype.show = function() {$(this.jqId).fadeIn(this.cfg.closeSpeed);this.visibleStateHolder.val(true); }PrimeFaces.widget.Panel.prototype.setupToggleTrigger = function() {var _self = this,trigger = this.toggler.parent();this.setupTriggerVisuals(trigger);trigger.click(function() {_self.toggle();}); }PrimeFaces.widget.Panel.prototype.setupCloseTrigger = function() {var _self = this,trigger = $(this.jqId + '_closer').parent();this.setupTriggerVisuals(trigger);trigger.click(function() {_self.close();}); }PrimeFaces.widget.Panel.prototype.setupMenuTrigger = function() {var trigger = $(this.jqId + '_menu').parent();this.setupTriggerVisuals(trigger); }PrimeFaces.widget.Panel.prototype.setupTriggerVisuals = function(trigger) {trigger.mouseover(function() {$(this).addClass('ui-state-hover');}).mouseout(function() {$(this).removeClass('ui-state-hover');}); }
四、IceFaces Panel.js/*** Panel Widget*/ ice.ace.Panel = function(id, cfg) {this.id = id;this.cfg = cfg;this.jqId = ice.ace.escapeClientId(id);if(this.cfg.toggleable) {this.toggler = ice.ace.jq(this.jqId + '_toggler');this.toggleStateHolder = ice.ace.jq(this.jqId + '_collapsed');this.content = ice.ace.jq(this.jqId + '_content');this.setupToggleTrigger();}if(this.cfg.closable) {this.visibleStateHolder = ice.ace.jq(this.jqId + "_visible");this.setupCloseTrigger();}if(this.cfg.hasMenu) {this.visibleStateHolder = ice.ace.jq(this.jqId + "_visible");this.setupMenuTrigger();}if(!this.cfg.visible) {ice.ace.jq(this.jqId).css('display','none');} }ice.ace.Panel.prototype.toggle = function() {if(this.cfg.collapsed) {this.toggler.removeClass('ui-icon-plusthick').addClass('ui-icon-minusthick');this.cfg.collapsed = false;this.toggleStateHolder.val(false);}else {this.toggler.removeClass('ui-icon-minusthick').addClass('ui-icon-plusthick');this.cfg.collapsed = true;this.toggleStateHolder.val(true);}var _self = this;this.content.slideToggle(this.cfg.toggleSpeed,function(e) {if(_self.cfg.behaviors) {var toggleBehavior = _self.cfg.behaviors['toggle'];if(toggleBehavior) {toggleBehavior.call(this, e);}}}); }ice.ace.Panel.prototype.close = function() {this.visibleStateHolder.val(false);var _self = this;ice.ace.jq(this.jqId).fadeOut(this.cfg.closeSpeed,function(e) {if(_self.cfg.behaviors) {var closeBehavior = _self.cfg.behaviors['close'];if(closeBehavior) {closeBehavior.call(this, e);}}}); }ice.ace.Panel.prototype.show = function() {ice.ace.jq(this.jqId).fadeIn(this.cfg.closeSpeed);this.visibleStateHolder.val(true); }ice.ace.Panel.prototype.setupToggleTrigger = function() {var _self = this,trigger = this.toggler.parent();this.setupTriggerVisuals(trigger);trigger.click(function() {_self.toggle();}); }ice.ace.Panel.prototype.setupCloseTrigger = function() {var _self = this,trigger = ice.ace.jq(this.jqId + '_closer').parent();this.setupTriggerVisuals(trigger);trigger.click(function() {_self.close();}); }ice.ace.Panel.prototype.setupMenuTrigger = function() {var trigger = ice.ace.jq(this.jqId + '_menu').parent();this.setupTriggerVisuals(trigger); }ice.ace.Panel.prototype.setupTriggerVisuals = function(trigger) {trigger.mouseover(function() {ice.ace.jq(this).addClass('ui-state-hover');}).mouseout(function() {ice.ace.jq(this).removeClass('ui-state-hover');}); }
ICEsoft公司在開發(fā)ACE組件集時,把PrimeFaces的代碼直接復(fù)制過來,然后修改包名和類名,其它的代碼都是照搬。這種行為真丟臉。
結(jié)論:ICEfaces的行為讓人及其失望,用PrimeFaces的開發(fā)者的一句原話作為本文的總結(jié):“您可以復(fù)制我們的代碼,但永遠(yuǎn)也拿不走我們的激情!”。











轉(zhuǎn)載于:https://www.cnblogs.com/yangjin-55/archive/2012/02/13/2786711.html

總結(jié)

以上是生活随笔為你收集整理的ICEfaces抄袭PrimeFaces的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 手机电影在线观看 | 精品视频在线一区二区 | 国产一国产二 | 中文字幕不卡在线 | 三上悠亚人妻中文字幕在线 | 小视频在线观看 | 国产一区二区久久 | 在线视频观看免费 | 激情四射av| 日本在线看片 | 电车痴汉在线观看 | 欧美爽妇 | 久久激情综合网 | 国产又粗又黄又爽的视频 | 国产欧美一区二区三区另类精品 | 激情av综合| 色视频国产 | 成人在线观看免费视频 | av手机在线看 | 国产全肉乱妇杂乱视频 | 日本www视频| 精品成在人线av无码免费看 | 厨房性猛交hd | 亚洲女人天堂av | 依人成人 | 一区二区成人网 | 日韩毛片网 | 丁香花电影免费播放电影 | 1级黄色大片 | 伊人伊人伊人 | 欧美天堂在线视频 | 高清乱码免费网 | 美国特色黄a大片 | 日韩精品一区二区三区 | 亚洲男人第一天堂 | 欧美a级肉欲大片xxx | 久久作爱视频 | 女人脱下裤子让男人桶 | 精品日韩一区二区 | 久久中文在线 | 日本三级视频 | 欧美亚洲一级 | 校园激情av | 亚洲三级色 | 骚鸭av | 国产a黄 | 黄色片一区二区 | 日韩精品在线一区二区 | 日韩欧美a级片 | www日韩视频 | 一区二区三区国 | 成人午夜免费电影 | av国产一区二区 | 91中文字幕在线视频 | 国产精品一线二线 | 亚洲黄色片子 | 亚洲视频天堂 | 狠狠躁日日躁夜夜躁 | 欧美第二页 | 国产情侣一区二区 | 久久久18禁一区二区三区精品 | 国产黄色美女视频 | 自拍偷拍校园春色 | 青青青视频在线播放 | 清冷男神被c的合不拢腿男男 | 国产91热爆ts人妖系列 | 国产日韩一级 | 亚洲色图影院 | 亚洲无av| 性开放耄耋老妇hd | 日韩av无码一区二区三区不卡 | 精久久久久 | 日韩久久精品电影 | 日本欧美黄色 | 日韩黄网| 色综网| 久草精品视频 | 国产欧美一区二区三区四区 | 在线你懂| 激情四射网 | 天天爽夜夜爽人人爽 | 婷婷久久网 | 日本中文字幕久久 | 色婷婷av一区| 黑帮大佬和我的365日第二部 | 尤物影院在线观看 | 中文字幕影片免费在线观看 | 亚洲区第一页 | 韩日精品在线观看 | 国产成人精品免费视频 | 快色视频在线观看 | 91精品久久久久久久久中文字幕 | 免费男女视频 | 粉色视频网站 | 国产乱码一区二区三区在线观看 | 一区二区三区久久 | 啪啪亚洲 | 在线成人小视频 | 金8天国av |