Provide a plug-in to edit the Eclipse project plan with Vex.
Signed-off-by: Florian Thienel <florian@thienel.org>
diff --git a/org.eclipse.vex.projectplan/.classpath b/org.eclipse.vex.projectplan/.classpath
new file mode 100644
index 0000000..2d1a430
--- /dev/null
+++ b/org.eclipse.vex.projectplan/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.vex.projectplan/.project b/org.eclipse.vex.projectplan/.project
new file mode 100644
index 0000000..d9397cb
--- /dev/null
+++ b/org.eclipse.vex.projectplan/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.vex.projectplan</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.vex.projectplan/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.vex.projectplan/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..bdf2b4f
--- /dev/null
+++ b/org.eclipse.vex.projectplan/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Mon Dec 12 23:25:18 CET 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.vex.projectplan/META-INF/MANIFEST.MF b/org.eclipse.vex.projectplan/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..021381a
--- /dev/null
+++ b/org.eclipse.vex.projectplan/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.vex.projectplan;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Require-Bundle: org.eclipse.core.contenttype,
+ org.eclipse.wst.xml.core,
+ org.eclipse.vex.ui;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.vex.xhtml;bundle-version="[1.0.0,2.0.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
diff --git a/org.eclipse.vex.projectplan/build.properties b/org.eclipse.vex.projectplan/build.properties
new file mode 100644
index 0000000..afd0556
--- /dev/null
+++ b/org.eclipse.vex.projectplan/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ styles/,\
+ xsd/,\
+ plugin.properties
diff --git a/org.eclipse.vex.projectplan/plugin.properties b/org.eclipse.vex.projectplan/plugin.properties
new file mode 100644
index 0000000..c203949
--- /dev/null
+++ b/org.eclipse.vex.projectplan/plugin.properties
@@ -0,0 +1,17 @@
+###############################################################################
+# Copyright (c) 2011 Florian Thienel 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:
+# Florian Thienel - initial API and implementation
+###############################################################################
+pluginName= The Eclipse Project Plan
+providerName= Eclipse.org
+
+doctype.plan=Eclipse Project Plan
+
+style.plain=Plain
+contentType.name=Eclipse Project Plan
diff --git a/org.eclipse.vex.projectplan/plugin.xml b/org.eclipse.vex.projectplan/plugin.xml
new file mode 100644
index 0000000..b4206b3
--- /dev/null
+++ b/org.eclipse.vex.projectplan/plugin.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.core.contenttype.contentTypes">
+ <content-type
+ base-type="org.eclipse.vex.ui.XmlDocument"
+ file-extensions="xml, projectplan"
+ id="org.eclipse.vex.projectplan"
+ name="%contentType.name"
+ priority="normal">
+ </content-type>
+ </extension>
+ <extension
+ point="org.eclipse.wst.xml.core.catalogContributions">
+ <catalogContribution>
+ <uri
+ name="http://www.eclipse.org/project/plan"
+ uri="xsd/plan.xsd">
+ </uri>
+ <uri
+ name="http://www.w3.org/1999/xhtml"
+ uri="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd">
+ </uri>
+ </catalogContribution>
+ </extension>
+ <extension
+ id="plan"
+ name="Eclipse Project Plan"
+ point="org.eclipse.vex.ui.doctypes">
+ <doctype
+ publicId="http://www.eclipse.org/project/plan"
+ systemId="xsd/plan.xsd">
+ <rootElement
+ name="plan">
+ </rootElement>
+ </doctype>
+ </extension>
+ <extension
+ id="plan-default"
+ name="Project Plan Default"
+ point="org.eclipse.vex.ui.styles">
+ <style
+ css="styles/plan-default.css">
+ <doctypeRef
+ publicId="http://www.eclipse.org/project/plan"></doctypeRef>
+ </style>
+ </extension>
+
+</plugin>
diff --git a/org.eclipse.vex.projectplan/styles/plan-default.css b/org.eclipse.vex.projectplan/styles/plan-default.css
new file mode 100644
index 0000000..f5b9779
--- /dev/null
+++ b/org.eclipse.vex.projectplan/styles/plan-default.css
@@ -0,0 +1,223 @@
+@import url(urn:org:eclipse:vex:styles:xhtml:xhtml1-plain.css);
+
+* {
+ font-family: sans-serif;
+ font-size: 10pt;
+}
+
+plan:before {
+ display: block;
+ content: "Project Plan for " attr(name);
+ font-weight: bold;
+ font-size: 18pt;
+}
+
+release:before {
+ display: block;
+ content: "Release " attr(version);
+}
+
+release {
+ display: block;
+}
+
+introduction:before {
+ display: block;
+ content: "Introduction";
+ font-weight: bold;
+ font-size: 14pt;
+ color: blue;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: gray;
+ margin-top: 5px;
+ margin-bottom: 5px;
+}
+
+introduction {
+ display: block;
+ margin-bottom: 5px;
+}
+
+release_deliverables:before {
+ display: block;
+ content: "Release Deliverables";
+ font-weight: bold;
+ font-size: 14pt;
+ color: blue;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: gray;
+ margin-top: 5px;
+ margin-bottom: 5px;
+}
+
+release_deliverables {
+ display: block;
+ margin-bottom: 5px;
+}
+
+release_milestones:before {
+ display: block;
+ content: "Release Milestones";
+ font-weight: bold;
+ font-size: 14pt;
+ color: blue;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: gray;
+ margin-top: 5px;
+ margin-bottom: 5px;
+}
+
+release_milestones {
+ display: block;
+ margin-bottom: 5px;
+}
+
+milestone:before {
+ display: inline;
+ content: attr(milestone) " (" attr(date) ") ";
+ font-weight: bold;
+}
+
+milestone {
+ display: block;
+ margin: 7px;
+}
+
+target_environments:before {
+ display: block;
+ content: "Target Environments";
+ font-weight: bold;
+ font-size: 14pt;
+ color: blue;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: gray;
+ margin-top: 5px;
+ margin-bottom: 5px;
+}
+
+target_environments {
+ display: block;
+ margin-bottom: 5px;
+}
+
+internationalization:before {
+ display: block;
+ content: "Internationalization";
+ font-weight: bold;
+ font-size: 14pt;
+ color: black;
+ border-bottom-width: 1px;
+ border-bottom-style: dotted;
+ border-bottom-color: gray;
+ margin-top: 5px;
+ margin-bottom: 5px;
+}
+
+internationalization {
+ display: block;
+}
+
+compatibility_with_previous_releases:before {
+ display: block;
+ content: "Compatibility with Previous Releases";
+ font-weight: bold;
+ font-size: 14pt;
+ color: blue;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: gray;
+ margin-top: 5px;
+ margin-bottom: 5px;
+}
+
+compatibility_with_previous_releases {
+ display: block;
+ margin-bottom: 5px;
+}
+
+themes_and_priorities:before {
+ display: block;
+ content: "Themes and Priorities";
+ font-weight: bold;
+ font-size: 14pt;
+ color: blue;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: gray;
+ margin-top: 5px;
+ margin-bottom: 5px;
+}
+
+themes_and_priorities {
+ display: block;
+ margin-bottom: 5px;
+}
+
+theme:before {
+ display: block;
+ content: attr(name);
+ font-weight: bold;
+ font-size: 14pt;
+ color: black;
+ border-bottom-width: 1px;
+ border-bottom-style: dotted;
+ border-bottom-color: gray;
+ margin-top: 5px;
+ margin-bottom: 5px;
+}
+
+theme {
+ display: block;
+}
+
+committed:before {
+ display: block;
+ content: "Committed " attr(bugzilla);
+}
+
+committed {
+ display: block;
+ margin: 7px;
+}
+
+proposed:before {
+ display: block;
+ content: "Proposed " attr(bugzilla);
+}
+
+proposed {
+ display: block;
+ margin: 7px;
+}
+
+deferred:before {
+ content: "Deferred " attr(bugzilla);
+}
+
+deferred {
+ display: block;
+ margin: 7px;
+}
+
+appendix:before {
+ display: block;
+ content: "Appendix";
+ font-weight: bold;
+ font-size: 14pt;
+ color: blue;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: gray;
+ margin-top: 5px;
+ margin-bottom: 5px;
+}
+
+appendix {
+ display: block;
+ margin-bottom: 5px;
+}
+
diff --git a/org.eclipse.vex.projectplan/xsd/plan.xsd b/org.eclipse.vex.projectplan/xsd/plan.xsd
new file mode 100644
index 0000000..c0ecb35
--- /dev/null
+++ b/org.eclipse.vex.projectplan/xsd/plan.xsd
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+
+ -->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified" targetNamespace="http://www.eclipse.org/project/plan"
+ xmlns="http://www.eclipse.org/project/plan">
+ <xsd:element name="plan" type="ProjectPlanType">
+ <xsd:annotation>
+ <xsd:documentation>Project Plan Root Element</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="ProjectPlanType">
+ <xsd:sequence>
+ <xsd:element name="release" type="ReleaseType">
+ <xsd:annotation>
+ <xsd:documentation></xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="introduction" type="XHTMLUserAreaType" minOccurs="1"/>
+ <xsd:element name="release_deliverables" type="XHTMLUserAreaType" minOccurs="0"/>
+ <xsd:element name="release_milestones" type="ReleaseMilestonesType" minOccurs="0"/>
+ <xsd:element name="target_environments" type="TargetEnvironmentsType" minOccurs="0"/>
+ <xsd:element name="compatibility_with_previous_releases" type="XHTMLUserAreaType" minOccurs="0"/>
+ <xsd:element name="themes_and_priorities" type="ThemesAndPrioritiesType" minOccurs="0"/>
+ <xsd:element name="appendix" type="AppendixType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="plan-format" type="planEnumeratedType"></xsd:attribute>
+ <xsd:attribute name="name" type="xsd:token">
+ <xsd:annotation>
+ <xsd:documentation>
+ Project Plan Name
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+
+ <xsd:simpleType name="planEnumeratedType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="1.0"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="ReleaseType">
+ <xsd:attribute name="projectid" type="xsd:token"/>
+ <xsd:attribute name="version" type="xsd:token"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="XHTMLUserAreaType">
+ <xsd:sequence>
+ <xsd:any namespace="http://www.w3.org/1999/xhtml" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="TargetEnvironmentsType">
+ <xsd:sequence>
+ <xsd:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="internationalization" type="XHTMLUserAreaType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ReleaseMilestonesType">
+ <xsd:sequence>
+ <xsd:element name="preamble" type="XHTMLUserAreaType" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="milestone" type="MilestoneUserAreaType" minOccurs="1" maxOccurs="unbounded"/>
+ <xsd:element name="postamble" type="XHTMLUserAreaType" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="MilestoneUserAreaType">
+ <xsd:complexContent>
+ <xsd:extension base="XHTMLUserAreaType">
+ <xsd:attribute name="date" type="xsd:token"></xsd:attribute>
+ <xsd:attribute name="milestone" type="xsd:token"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="ThemesAndPrioritiesType">
+ <xsd:sequence>
+ <xsd:element name="preamble" type="XHTMLUserAreaType" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="theme" type="ThemeType" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ThemeType">
+ <xsd:sequence>
+ <xsd:element name="description" type="XHTMLUserAreaType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="committed" type="BugzillaType" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="proposed" type="BugzillaType" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="deferred" type="BugzillaType" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:token" use="required"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="BugzillaType">
+ <xsd:complexContent>
+ <xsd:extension base="XHTMLUserAreaType">
+ <xsd:attribute name="bugzilla" type="xsd:anyURI" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="AppendixType">
+ <xsd:complexContent>
+ <xsd:extension base="XHTMLUserAreaType">
+ <xsd:attribute name="name" type="xsd:token"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+</xsd:schema>
\ No newline at end of file