Package org.eclipse.jst.jsf.taglibprocessing.attributevalues

Source Code of org.eclipse.jst.jsf.taglibprocessing.attributevalues.DateTimePatternType

/*******************************************************************************
* Copyright (c) 2007 Oracle Corporation., 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.eclipse.org/legal/epl-v10.html
*
* Contributors:
*    Oracle - initial API and implementation
*   
********************************************************************************/
package org.eclipse.jst.jsf.taglibprocessing.attributevalues;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.jst.jsf.context.resolver.structureddocument.IDOMContextResolver;
import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
import org.eclipse.jst.jsf.metadataprocessors.AbstractRootTypeDescriptor;
import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
import org.eclipse.jst.jsf.metadataprocessors.features.PossibleValue;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
import org.w3c.dom.Node;

/**
* Meta-data processing type representing a Date, Time and DateTime Pattern types.
*
* <p><b>Provisional API - subject to change</b></p>
*
*/

public class DateTimePatternType extends AbstractRootTypeDescriptor implements IPossibleValues{
  //should we ever validate the patterns, extend EnumerationType
  final private static String[] DATEPATTERNS = {"M/d/yy", "EEE, M/d/yy", "MM/dd/yyyy", "EEE, MM/dd/yyyy", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
        "MMM d, yyyy", "EEE, MMM d, yyyy", "MMMM d, yyyy", "EEEE, MMMM d, yyyy", "MMMM yyyy" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ };
  };
 
  final private static String[] TIMEPATTERNS     = {"hh:mm", "hh:mm z", "HH:mm z", "HH:mm:ss z" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
  };
   
  final private static String[] DATETIMEPATTERNS = {"M/d/yy hh:mm", "EEE, M/d/yy hh:mm", "MM/dd/yyyy HH:mm:ss z", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    "EEE, MM/dd/yyyy HH:mm:ss z", "MMM d, yyyy HH:mm z", "EEE, MMM d, yyyy HH:mm z", "MMMM d, yyyy HH:mm z", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
    "EEEE, MMMM d, yyyy HH:mm z" //$NON-NLS-1$
  };

  public List getPossibleValues() {
    List ret = new ArrayList();   
    String typeVal = getTypeValue();
    if ("date".equalsIgnoreCase(typeVal)){ //$NON-NLS-1$
      for (int i=0;i<DATEPATTERNS.length;i++){
        ret.add(new PossibleValue(DATEPATTERNS[i]));
      }
    }
    else if ("time".equalsIgnoreCase(typeVal)){ //$NON-NLS-1$
      for (int i=0;i<TIMEPATTERNS.length;i++){
        ret.add(new PossibleValue(TIMEPATTERNS[i]));
      }
    }
    else
      for (int i=0;i<DATETIMEPATTERNS.length;i++){
        ret.add(new PossibleValue(DATETIMEPATTERNS[i]));
      }
    }
    return ret;
  }
 
  private String getTypeValue() {
    if (getStructuredDocumentContext() != null){
      IDOMContextResolver resolver = IStructuredDocumentContextResolverFactory.INSTANCE.getDOMContextResolver(getStructuredDocumentContext());
      if (resolver != null){
        Node aNode = resolver.getNode();
        if (aNode instanceof IDOMAttr) {
          Node tagNode = ((IDOMAttr)aNode).getOwnerElement();
          IDOMAttr typeNode = (IDOMAttr) tagNode.getAttributes().getNamedItem("type"); //$NON-NLS-1$
          if (typeNode != null)
            return typeNode.getValue();
        }       
      }
    }
    return ""; //$NON-NLS-1$
  }


}
TOP

Related Classes of org.eclipse.jst.jsf.taglibprocessing.attributevalues.DateTimePatternType

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.