📄 jahiadatefield.java
字号:
// JahiaDateField// YG 08.08.2001package org.jahia.data.fields;import java.util.*; // Vector, Calendarimport org.jahia.utils.*; import org.jahia.data.*; import org.jahia.params.*; // ParamBeanimport org.jahia.sharing.*; // JahiaDataSourceManagerimport org.jahia.exceptions.JahiaException;import org.jahia.services.pages.*;import org.jahia.registries.*; // Registriespublic class JahiaDateField extends JahiaField{ /*** * constructor * YG * */ public JahiaDateField(Integer ID, Integer jahiaID, Integer pageID, Integer ctnid, Integer fieldDefID, Integer fieldType, Integer connectType, String fieldValue, Integer rank, Integer aclID ) { super(ID, jahiaID, pageID, ctnid, fieldDefID, fieldType, connectType, fieldValue, rank, aclID); } // end constructor public void load(int loadFlag, ParamBean jParams) throws JahiaException { switch (this.getConnectType()) { case (ConnectionTypes.LOCAL) : //this.setValue(this.getValue()); if (!this.getValue().equals("<empty>")) { Vector months = new Vector(); months.add("January"); months.add("February"); months.add("March"); months.add("April"); months.add("May"); months.add("June"); months.add("July"); months.add("August"); months.add("September"); months.add("October"); months.add("November"); months.add("December"); int pageID = this.pageID; JahiaPage thePage = ServicesRegistry.getInstance().getJahiaPageService().lookupPage( pageID); String defValue = this.getDefinition().getDefaultValue(thePage.getPageTemplateID()); //System.out.println("DefValue: "+defValue); String vData = "DD MONTH YYYY"; if ( (defValue.toUpperCase().indexOf("JAHIA_CALENDAR") != -1) && (defValue.indexOf("[") != -1) ) { int startStr = defValue.indexOf("[") + 1; int endStr = defValue.indexOf("]"); vData = defValue.substring(startStr,endStr); } //System.out.println("Format: "+vData); long t1; if (this.getValue() != null && !this.getValue().equals("")) { try { Long l1 = new Long(this.getValue()); t1 = l1.longValue(); } catch (NumberFormatException e) { this.setValue(""); this.setObject(new String("")); break; } } else { //t1 = System.currentTimeMillis(); this.setValue(""); this.setObject(new String("")); break; } TimeZone tz = TimeZone.getTimeZone("UTC"); Calendar cal = Calendar.getInstance(tz); cal.setTime(new Date(t1)); int year = cal.get(Calendar.YEAR); int mon = cal.get(Calendar.MONTH); int mon2 = mon+1; int day = cal.get(Calendar.DAY_OF_MONTH); int hour = cal.get(Calendar.HOUR_OF_DAY); int min = cal.get(Calendar.MINUTE); String vMonth = new String(); vMonth = vMonth.valueOf(1 + mon); vMonth = (vMonth.length() < 2) ? "0" + vMonth : vMonth; String vMon = ((String)months.get(mon)).substring(0,3); String vFMon = (String)months.get(mon); String vY4 = new String(); vY4 = vY4.valueOf(year); String vY2 = new String(); vY2 = vY4.substring(2,4); String vDD = new String(); vDD = vDD.valueOf(day); vDD = (vDD.length() < 2) ? "0" + vDD : vDD; String h24 = String.valueOf(hour); String h12; String vTT; if (hour > 12) { h12 = String.valueOf(hour - 12); vTT = "PM"; } else if (hour == 0) { h12 = String.valueOf(12); vTT = "PM"; } else { h12 = String.valueOf(hour); vTT = "AM"; } h24 = (h24.length() < 2) ? "0" + h24 : h24; h12 = (h12.length() < 2) ? "0" + h12 : h12; String m = String.valueOf(min); m = (m.length() < 2) ? "0" + m : m; String vT24 = h24 + ":" + m; String vT12 = h12 + ":" + m; StringBuffer data = new StringBuffer(vData); int pos = vData.toUpperCase().indexOf("YYYY"); if (pos != -1) { data = data.replace(pos, pos+4, vY4); vData = data.toString(); } pos = vData.toUpperCase().indexOf("YY"); if (pos != -1) { data = data.replace(pos, pos+2, vY2); vData = data.toString(); } pos = vData.toUpperCase().indexOf("MONTH"); if (pos != -1) { data = data.replace(pos, pos+5, vFMon); vData = data.toString(); } pos = vData.toUpperCase().indexOf("MON"); if (pos != -1) { data = data.replace(pos, pos+3, vMon); vData = data.toString(); } pos = vData.toUpperCase().indexOf("HH:MM"); if (pos != -1) { int pos2 = vData.toUpperCase().indexOf("TT"); if (pos2 != -1) { data = data.replace(pos2, pos2+2, vTT); data = data.replace(pos, pos+5, vT12); vData = data.toString(); } else { data = data.replace(pos, pos+5, vT24); vData = data.toString(); } } pos = vData.toUpperCase().indexOf("MM"); if (pos != -1) { data = data.replace(pos, pos+2, vMonth); vData = data.toString(); } pos = vData.toUpperCase().indexOf("DD"); if (pos != -1) { data = data.replace(pos, pos+2, vDD); vData = data.toString(); } vData = data.toString(); //System.out.println("Date: "+vData); this.setObject( this.getValue() ); this.setValue(vData); this.setRawValue(this.getValue()); } break; case (ConnectionTypes.DATASOURCE) : if ((loadFlag & LoadFlags.DATASOURCE) != 0) { this.setValue( JahiaDataSourceManager.getInstance(). fields().getInstance().getRemoteFieldValue( this.getValue() )); this.setObject( this.getValue() ); } } } public void save(ParamBean jParams) throws JahiaException { ; } public void delete(ParamBean jParams) throws JahiaException { ; } /** * Returns an hashtable of indexable attributes , pairs [attribute name/value]. * Returned pairs: * ("value",val) the date value * * @return Hashtable a map of indexable attributes , pairs [attribute name/value] */ public Hashtable getIndexableAttributes(){ Hashtable hash = new Hashtable(); hash.put("value",getValue()); return hash; } public String getEngineName() { return "org.jahia.engines.shared.Date_Field"; } public String getFieldContent4Ranking() { return this.getValue(); } public String getIconNameOff() { return "date_off"; } public String getIconNameOn() { return "date_on"; } public JahiaField cloneField(int newctnid, int newPageID, int clonedAclID, boolean childrenCloned) throws JahiaException { JahiaField clonedField = ServicesRegistry.getInstance().getJahiaFieldService(). createJahiaField(0, this.getJahiaID(), newPageID, newctnid, this.getFieldDefID(), this.getType(), this.getConnectType(), (String)this.getObject(), this.getRank(), clonedAclID ); //toDebug("cloneField(): value = "+this.getValue()); if (clonedField == null) { throw new JahiaException ("Could not clone field.", "Could not instanciate a new JahiaField object.", JahiaException.PAGE_ERROR, JahiaException.CRITICAL); } clonedField.setRawValue(this.getRawValue()); clonedField.setObject( this.getObject() ); clonedField.setProperties( (Hashtable)(this.getProperties()).clone() ); return clonedField; } public Object clone() { return new JahiaDateField (new Integer(ID), new Integer(jahiaID), new Integer(pageID), new Integer(ctnid), new Integer(fieldDefID), new Integer(fieldType), new Integer(connectType), fieldValue, new Integer(rank), new Integer(aclID) ); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -