diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointWithHighlighter.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointWithHighlighter.java index 2bedea9e7225..3d11db3766b3 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointWithHighlighter.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointWithHighlighter.java @@ -31,7 +31,6 @@ import com.intellij.openapi.editor.colors.EditorColorsManager; import com.intellij.openapi.editor.colors.EditorColorsScheme; import com.intellij.openapi.editor.ex.MarkupModelEx; import com.intellij.openapi.editor.impl.DocumentMarkupModel; -import com.intellij.openapi.editor.markup.MarkupEditorFilterFactory; import com.intellij.openapi.editor.markup.RangeHighlighter; import com.intellij.openapi.editor.markup.TextAttributes; import com.intellij.openapi.fileEditor.FileDocumentManager; @@ -68,9 +67,6 @@ import javax.swing.*; * Time: 3:22:55 PM */ public abstract class BreakpointWithHighlighter

extends Breakpoint

{ - @Nullable - private RangeHighlighter myHighlighter; - @Nullable private SourcePosition mySourcePosition; @@ -127,10 +123,6 @@ public abstract class BreakpointWithHighlighter

getCategory(); - public boolean canMoveTo(@Nullable final SourcePosition position) { - if (position == null || !position.getFile().isValid()) { - return false; - } - final PsiFile psiFile = position.getFile(); - final Document document = PsiDocumentManager.getInstance(getProject()).getDocument(psiFile); - if (document == null) { - return false; - } - final int spOffset = position.getOffset(); - if (spOffset < 0) { - return false; - } - final BreakpointManager breakpointManager = DebuggerManagerEx.getInstanceEx(getProject()).getBreakpointManager(); - return breakpointManager.findBreakpoint(document, spOffset, getCategory()) == null; - } + //public boolean canMoveTo(@Nullable final SourcePosition position) { + // if (position == null || !position.getFile().isValid()) { + // return false; + // } + // final PsiFile psiFile = position.getFile(); + // final Document document = PsiDocumentManager.getInstance(getProject()).getDocument(psiFile); + // if (document == null) { + // return false; + // } + // final int spOffset = position.getOffset(); + // if (spOffset < 0) { + // return false; + // } + // final BreakpointManager breakpointManager = DebuggerManagerEx.getInstanceEx(getProject()).getBreakpointManager(); + // return breakpointManager.findBreakpoint(document, spOffset, getCategory()) == null; + //} - public boolean moveTo(@NotNull SourcePosition position) { - if (!canMoveTo(position)) { - return false; - } - final PsiFile psiFile = position.getFile(); - final PsiFile oldFile = getSourcePosition().getFile(); - final Document document = PsiDocumentManager.getInstance(getProject()).getDocument(psiFile); - final Document oldDocument = PsiDocumentManager.getInstance(getProject()).getDocument(oldFile); - if (document == null || oldDocument == null) { - return false; - } - final RangeHighlighter newHighlighter = createHighlighter(myProject, document, position.getLine()); - if (newHighlighter == null) { - return false; - } - final RangeHighlighter oldHighlighter = myHighlighter; - myHighlighter = newHighlighter; - - reload(); - - if (!isValid()) { - myHighlighter.dispose(); - myHighlighter = oldHighlighter; - reload(); - return false; - } - - if (oldHighlighter != null) { - oldHighlighter.dispose(); - } - - DebuggerManagerEx.getInstanceEx(getProject()).getBreakpointManager().fireBreakpointChanged(this); - updateUI(); - - return true; - } + //public boolean moveTo(@NotNull SourcePosition position) { + // if (!canMoveTo(position)) { + // return false; + // } + // final PsiFile psiFile = position.getFile(); + // final PsiFile oldFile = getSourcePosition().getFile(); + // final Document document = PsiDocumentManager.getInstance(getProject()).getDocument(psiFile); + // final Document oldDocument = PsiDocumentManager.getInstance(getProject()).getDocument(oldFile); + // if (document == null || oldDocument == null) { + // return false; + // } + // final RangeHighlighter newHighlighter = createHighlighter(myProject, document, position.getLine()); + // if (newHighlighter == null) { + // return false; + // } + // final RangeHighlighter oldHighlighter = myHighlighter; + // myHighlighter = newHighlighter; + // + // reload(); + // + // if (!isValid()) { + // myHighlighter.dispose(); + // myHighlighter = oldHighlighter; + // reload(); + // return false; + // } + // + // if (oldHighlighter != null) { + // oldHighlighter.dispose(); + // } + // + // DebuggerManagerEx.getInstanceEx(getProject()).getBreakpointManager().fireBreakpointChanged(this); + // updateUI(); + // + // return true; + //} public boolean isVisible() { return myVisible; @@ -535,13 +489,8 @@ public abstract class BreakpointWithHighlighter

breakpoint) { - final RangeHighlighter highlighter = oldBreakpoint.getHighlighter(); - if (highlighter != null) { - highlighter.dispose(); - } } @Override diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFileImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFileImpl.java index 369ce919f5a1..8eaba9c54615 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFileImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFileImpl.java @@ -16,7 +16,6 @@ package com.intellij.psi.impl.compiled; import com.intellij.diagnostic.PluginException; -import com.intellij.ide.caches.FileContent; import com.intellij.ide.highlighter.JavaClassFileType; import com.intellij.ide.highlighter.JavaFileType; import com.intellij.ide.plugins.PluginManagerCore; @@ -476,11 +475,6 @@ public class ClsFileImpl extends ClsRepositoryPsiElement } } - @Override - public PsiFile cacheCopy(final FileContent content) { - return this; - } - @Override public void putInfo(@NotNull Map info) { PsiFileImpl.putInfo(this, info); diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/highlighting/HighlightUsagesHandlerTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/highlighting/HighlightUsagesHandlerTest.groovy index 02d52a54da24..6237f9ca6f30 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/highlighting/HighlightUsagesHandlerTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/highlighting/HighlightUsagesHandlerTest.groovy @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,11 +14,10 @@ * limitations under the License. */ package com.intellij.codeInsight.highlighting - import com.intellij.JavaTestUtil +import com.intellij.codeInsight.daemon.impl.HighlightInfoType import com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPassFactory import com.intellij.codeInspection.sillyAssignment.SillyAssignmentInspection -import com.intellij.lang.annotation.HighlightSeverity import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase import org.jetbrains.annotations.NonNls /** @@ -233,7 +232,7 @@ class Bar { try { def infos = myFixture.doHighlighting() //import highlighted twice: for each overloaded usage target - assert infos.findAll { it.severity == HighlightSeverity.INFORMATION && myFixture.file.text.substring(it.startOffset, it.endOffset) == 'foo' }.size() == 3 + assert infos.findAll { it.severity == HighlightInfoType.ELEMENT_UNDER_CARET_SEVERITY && myFixture.file.text.substring(it.startOffset, it.endOffset) == 'foo' }.size() == 3 } finally { IdentifierHighlighterPassFactory.ourTestingIdentifierHighlighting = false diff --git a/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java b/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java index 1c9ad33a8eea..f320d7efea64 100644 --- a/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java +++ b/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java @@ -129,7 +129,7 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { } public void readExternal(@NotNull Document document, @NotNull URL url) throws InvalidDataException, FileNotFoundException { - document = JDOMXIncluder.resolve(document, url.toExternalForm()); + document = JDOMXIncluder.resolve(document, url.toExternalForm(), ApplicationManager.getApplication().isUnitTestMode()); Element rootElement = document.getRootElement(); internJDOMElement(rootElement); readExternal(document.getRootElement()); diff --git a/platform/core-impl/src/com/intellij/psi/impl/PsiFileEx.java b/platform/core-impl/src/com/intellij/psi/impl/PsiFileEx.java index cf7543aeaac4..c06f656940f6 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/PsiFileEx.java +++ b/platform/core-impl/src/com/intellij/psi/impl/PsiFileEx.java @@ -16,7 +16,6 @@ package com.intellij.psi.impl; -import com.intellij.ide.caches.FileContent; import com.intellij.openapi.util.Key; import com.intellij.psi.PsiFile; @@ -25,5 +24,4 @@ public interface PsiFileEx extends PsiFile{ boolean isContentsLoaded(); void onContentReload(); - PsiFile cacheCopy(final FileContent content); // See CacheUtil } diff --git a/platform/core-impl/src/com/intellij/psi/impl/PsiManagerImpl.java b/platform/core-impl/src/com/intellij/psi/impl/PsiManagerImpl.java index a25c3d52eddf..2c4c00204937 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/PsiManagerImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/PsiManagerImpl.java @@ -16,7 +16,6 @@ package com.intellij.psi.impl; -import com.intellij.ide.caches.FileContent; import com.intellij.lang.PsiBuilderFactory; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; @@ -27,11 +26,9 @@ import com.intellij.openapi.progress.ProgressIndicatorProvider; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.FileIndexFacade; import com.intellij.openapi.util.Disposer; -import com.intellij.openapi.util.Key; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileFilter; import com.intellij.psi.*; -import com.intellij.psi.impl.cache.CacheUtil; import com.intellij.psi.impl.file.impl.FileManager; import com.intellij.psi.impl.file.impl.FileManagerImpl; import com.intellij.psi.util.PsiModificationTracker; @@ -67,7 +64,6 @@ public class PsiManagerImpl extends PsiManagerEx { private final AtomicInteger myBatchFilesProcessingModeCount = new AtomicInteger(0); - private static final Key CACHED_PSI_FILE_COPY_IN_FILECONTENT = Key.create("CACHED_PSI_FILE_COPY_IN_FILECONTENT"); public static final Topic ANY_PSI_CHANGE_TOPIC = Topic.create("ANY_PSI_CHANGE_TOPIC", AnyPsiChangeListener.class, Topic.BroadcastDirection.TO_PARENT); @@ -200,25 +196,6 @@ public class PsiManagerImpl extends PsiManagerEx { LOG.assertTrue(ApplicationManager.getApplication().isUnitTestMode()); } - @Nullable - public PsiFile getFile(@NotNull FileContent content) { - PsiFile psiFile = content.getUserData(CACHED_PSI_FILE_COPY_IN_FILECONTENT); - if (psiFile == null) { - final VirtualFile vFile = content.getVirtualFile(); - psiFile = myFileManager.getCachedPsiFile(vFile); - if (psiFile == null) { - psiFile = findFile(vFile); - if (psiFile == null) return null; - psiFile = CacheUtil.createFileCopy(content, psiFile); - } - //psiFile = content.putUserDataIfAbsent(CACHED_PSI_FILE_COPY_IN_FILECONTENT, psiFile); - content.putUserData(CACHED_PSI_FILE_COPY_IN_FILECONTENT, psiFile); - } - - LOG.assertTrue(psiFile instanceof PsiCompiledElement || psiFile.isValid()); - return psiFile; - } - @Override public PsiDirectory findDirectory(@NotNull VirtualFile file) { ProgressIndicatorProvider.checkCanceled(); diff --git a/platform/core-impl/src/com/intellij/psi/impl/cache/CacheUtil.java b/platform/core-impl/src/com/intellij/psi/impl/cache/CacheUtil.java index ed7ba4d12823..8e5ed1b22a93 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/cache/CacheUtil.java +++ b/platform/core-impl/src/com/intellij/psi/impl/cache/CacheUtil.java @@ -16,61 +16,13 @@ package com.intellij.psi.impl.cache; -import com.intellij.ide.caches.FileContent; import com.intellij.lang.Language; import com.intellij.lang.LanguageParserDefinitions; import com.intellij.lang.ParserDefinition; -import com.intellij.openapi.editor.Document; -import com.intellij.openapi.fileEditor.FileDocumentManager; -import com.intellij.openapi.fileEditor.impl.LoadTextUtil; -import com.intellij.openapi.util.Key; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.PsiFile; -import com.intellij.psi.impl.PsiFileEx; import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; public class CacheUtil { - public static final Key CACHE_COPY_KEY = new Key("CACHE_COPY_KEY"); - - private CacheUtil() { - } - - public static boolean isCopy(@NotNull PsiFile psiFile) { - return psiFile.getUserData(CACHE_COPY_KEY) != null; - } - - public static PsiFile createFileCopy(FileContent content, PsiFile psiFile) { - VirtualFile vFile = psiFile.getVirtualFile(); - if (vFile == null) return psiFile; // It's already a copy created via PsiManager.getFile(FileContent). Usually happens on initial startup. - - if (psiFile instanceof PsiFileEx) { - return ((PsiFileEx)psiFile).cacheCopy(content); - } - - return psiFile; - } - - private static final Key CONTENT_KEY = new Key("CONTENT_KEY"); - - public static CharSequence getContentText(final FileContent content) { - final Document doc = FileDocumentManager.getInstance().getCachedDocument(content.getVirtualFile()); - if (doc != null) return doc.getCharsSequence(); - - CharSequence cached = content.getUserData(CONTENT_KEY); - if (cached != null) return cached; - try { - cached = LoadTextUtil.getTextByBinaryPresentation(content.getBytes(), content.getVirtualFile(), false, false); - cached = content.putUserDataIfAbsent(CONTENT_KEY, cached); - return cached; - } - catch (IOException e) { - return ""; - } - } public static boolean isInComments(final IElementType tokenType) { final Language language = tokenType.getLanguage(); diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java b/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java index 5d73c0d10e83..5137ace2d63d 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java @@ -17,7 +17,6 @@ package com.intellij.psi.impl.source; import com.intellij.extapi.psi.StubBasedPsiElementBase; -import com.intellij.ide.caches.FileContent; import com.intellij.ide.util.PsiNavigationSupport; import com.intellij.lang.ASTFactory; import com.intellij.lang.ASTNode; @@ -29,7 +28,6 @@ import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; import com.intellij.openapi.fileEditor.FileDocumentManager; -import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Queryable; import com.intellij.openapi.util.Key; @@ -374,10 +372,6 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF treeElement.rawAddChildrenWithoutNotifications(contentLeaf); } - if (CacheUtil.isCopy(this)) { - treeElement.setCharTable(IdentityCharTable.INSTANCE); - } - return treeElement; } @@ -508,7 +502,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF @Override public boolean isWritable() { - return getViewProvider().getVirtualFile().isWritable() && !CacheUtil.isCopy(this); + return getViewProvider().getVirtualFile().isWritable(); } @Override @@ -653,32 +647,6 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF } } - @Override - public PsiFile cacheCopy(final FileContent content) { - if (isContentsLoaded()) { - return this; - } - else { - CharSequence text; - if (content == null) { - Document document = FileDocumentManager.getInstance().getDocument(getVirtualFile()); - text = document.getCharsSequence(); - } - else { - text = CacheUtil.getContentText(content); - } - - FileType fileType = getFileType(); - final String name = getName(); - PsiFile fileCopy = - PsiFileFactory.getInstance(getProject()).createFileFromText(name, fileType, text, getModificationStamp(), false, false); - fileCopy.putUserData(CacheUtil.CACHE_COPY_KEY, Boolean.TRUE); - - ((PsiFileImpl)fileCopy).setOriginalFile(this); - return fileCopy; - } - } - @Nullable public StubElement getStub() { StubTree stubHolder = getStubTree(); diff --git a/platform/editor-ui-ex/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactoryImpl.java b/platform/editor-ui-ex/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactoryImpl.java index b3858c8f664f..e0d91f62eadc 100644 --- a/platform/editor-ui-ex/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactoryImpl.java +++ b/platform/editor-ui-ex/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactoryImpl.java @@ -74,7 +74,12 @@ public class EditorHighlighterFactoryImpl extends EditorHighlighterFactory { return editorHighlighter; } } - return FileTypeEditorHighlighterProviders.INSTANCE.forFileType(fileType).getEditorHighlighter(project, fileType, vFile, settings); + try { + return FileTypeEditorHighlighterProviders.INSTANCE.forFileType(fileType).getEditorHighlighter(project, fileType, vFile, settings); + } + catch (Exception e) { + LOG.error(e); + } } SyntaxHighlighter highlighter = null; diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/LightPsiFileImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/LightPsiFileImpl.java index 7d25327c607e..8a637369101d 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/LightPsiFileImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/LightPsiFileImpl.java @@ -16,7 +16,6 @@ package com.intellij.psi.impl.source; -import com.intellij.ide.caches.FileContent; import com.intellij.ide.util.PsiNavigationSupport; import com.intellij.lang.FileASTNode; import com.intellij.lang.Language; @@ -270,11 +269,6 @@ public abstract class LightPsiFileImpl extends PsiElementBase implements PsiFile public void onContentReload() { } - @Override - public PsiFile cacheCopy(final FileContent content) { - return this; - } - @Override public boolean isWritable() { return getViewProvider().getVirtualFile().isWritable(); diff --git a/platform/platform-api/src/com/intellij/openapi/options/BaseConfigurableWithChangeSupport.java b/platform/platform-api/src/com/intellij/openapi/options/BaseConfigurableWithChangeSupport.java index 03dff4f31208..85f6463c439a 100644 --- a/platform/platform-api/src/com/intellij/openapi/options/BaseConfigurableWithChangeSupport.java +++ b/platform/platform-api/src/com/intellij/openapi/options/BaseConfigurableWithChangeSupport.java @@ -15,28 +15,28 @@ */ package com.intellij.openapi.options; -import com.intellij.util.containers.ContainerUtil; +import com.intellij.util.EventDispatcher; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.util.List; public abstract class BaseConfigurableWithChangeSupport extends BaseConfigurable { - private final List myListeners = ContainerUtil.createLockFreeCopyOnWriteList(); + private final EventDispatcher myDispatcher = EventDispatcher.create(ChangeListener.class); - public void setModified(final boolean modified) { + public void setModified(boolean modified) { fireStateChanged(); super.setModified(modified); } - public void addChangeListener(final ChangeListener listener) { - myListeners.add(listener); + public void addChangeListener(ChangeListener listener) { + myDispatcher.addListener(listener); + } + + public void removeChangeListener(ChangeListener listener) { + myDispatcher.addListener(listener); } public void fireStateChanged() { - final ChangeEvent event = new ChangeEvent(this); - for (final ChangeListener listener : myListeners) { - listener.stateChanged(event); - } + myDispatcher.getMulticaster().stateChanged(new ChangeEvent(this)); } } diff --git a/platform/platform-api/src/com/intellij/openapi/ui/popup/ComponentPopupBuilder.java b/platform/platform-api/src/com/intellij/openapi/ui/popup/ComponentPopupBuilder.java index 41c6b74eb9e2..eda48cc3be03 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/popup/ComponentPopupBuilder.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/popup/ComponentPopupBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.intellij.openapi.ui.popup; import com.intellij.openapi.project.Project; @@ -37,15 +36,14 @@ import java.util.List; * @author max */ public interface ComponentPopupBuilder { - @NotNull ComponentPopupBuilder setTitle(String title); @NotNull - ComponentPopupBuilder setResizable(final boolean forceResizable); + ComponentPopupBuilder setResizable(boolean forceResizable); @NotNull - ComponentPopupBuilder setMovable(final boolean forceMovable); + ComponentPopupBuilder setMovable(boolean forceMovable); @NotNull ComponentPopupBuilder setRequestFocus(boolean requestFocus); @@ -56,20 +54,14 @@ public interface ComponentPopupBuilder { @NotNull ComponentPopupBuilder setRequestFocusCondition(Project project, Condition condition); - /** - * @deprecated all popups are heavyweight now, lightweight popups no linger supported - */ - @NotNull - ComponentPopupBuilder setForceHeavyweight(boolean forceHeavyweight); - /** * @see com.intellij.openapi.util.DimensionService */ @NotNull - ComponentPopupBuilder setDimensionServiceKey(@Nullable final Project project, @NonNls final String dimensionServiceKey, final boolean useForXYLocation); + ComponentPopupBuilder setDimensionServiceKey(@Nullable Project project, @NonNls String key, boolean useForXYLocation); @NotNull - ComponentPopupBuilder setCancelCallback(final Computable shouldProceed); + ComponentPopupBuilder setCancelCallback(Computable shouldProceed); @NotNull ComponentPopupBuilder setCancelOnClickOutside(boolean cancel); @@ -78,7 +70,7 @@ public interface ComponentPopupBuilder { ComponentPopupBuilder addListener(JBPopupListener listener); @NotNull - ComponentPopupBuilder setCancelOnMouseOutCallback(final MouseChecker shouldCancel); + ComponentPopupBuilder setCancelOnMouseOutCallback(MouseChecker shouldCancel); @NotNull JBPopup createPopup(); @@ -89,34 +81,41 @@ public interface ComponentPopupBuilder { @NotNull ComponentPopupBuilder setCancelOnOtherWindowOpen(boolean cancelOnWindow); - @NotNull ComponentPopupBuilder setTitleIcon(@NotNull ActiveIcon icon); - - @NotNull ComponentPopupBuilder setCancelKeyEnabled(boolean enabled); - - @NotNull ComponentPopupBuilder setLocateByContent(boolean byContent); + @NotNull + ComponentPopupBuilder setTitleIcon(@NotNull ActiveIcon icon); - @NotNull ComponentPopupBuilder setLocateWithinScreenBounds(boolean within); + @NotNull + ComponentPopupBuilder setCancelKeyEnabled(boolean enabled); - @NotNull ComponentPopupBuilder setMinSize(Dimension minSize); + @NotNull + ComponentPopupBuilder setLocateByContent(boolean byContent); - @NotNull ComponentPopupBuilder setAlpha(float alpha); + @NotNull + ComponentPopupBuilder setLocateWithinScreenBounds(boolean within); - @NotNull ComponentPopupBuilder setBelongsToGlobalPopupStack(boolean isInStack); + @NotNull + ComponentPopupBuilder setMinSize(Dimension minSize); - @NotNull ComponentPopupBuilder setProject(Project project); + @NotNull + ComponentPopupBuilder setAlpha(float alpha); - @NotNull ComponentPopupBuilder addUserData(Object object); + @NotNull + ComponentPopupBuilder setBelongsToGlobalPopupStack(boolean isInStack); - @NotNull ComponentPopupBuilder setModalContext(boolean modal); + @NotNull + ComponentPopupBuilder setProject(Project project); + + @NotNull + ComponentPopupBuilder addUserData(Object object); + + @NotNull + ComponentPopupBuilder setModalContext(boolean modal); @NotNull ComponentPopupBuilder setFocusOwners(@NotNull Component[] focusOwners); /** * Adds "advertising" text to the bottom (e.g.: hints in code completion popup). - * - * @param text Text to set. - * @return This. */ @NotNull ComponentPopupBuilder setAdText(@Nullable String text); @@ -124,7 +123,8 @@ public interface ComponentPopupBuilder { @NotNull ComponentPopupBuilder setAdText(@Nullable String text, int textAlignment); - @NotNull ComponentPopupBuilder setShowShadow(boolean show); + @NotNull + ComponentPopupBuilder setShowShadow(boolean show); @NotNull ComponentPopupBuilder setCommandButton(@NotNull ActiveComponent commandButton); @@ -144,11 +144,11 @@ public interface ComponentPopupBuilder { ComponentPopupBuilder setCancelOnWindowDeactivation(boolean cancelOnWindowDeactivation); /** - * Allows to define custom strategy for processing {@link JBPopup#dispatchKeyEvent(KeyEvent)} - * - * @param handler strategy to use - * @return this + * Allows to define custom strategy for processing {@link JBPopup#dispatchKeyEvent(KeyEvent)}. */ @NotNull ComponentPopupBuilder setKeyEventHandler(@NotNull BooleanFunction handler); + + @NotNull + ComponentPopupBuilder setShowBorder(boolean show); } diff --git a/platform/platform-impl/src/com/intellij/ide/actions/AboutAction.java b/platform/platform-impl/src/com/intellij/ide/actions/AboutAction.java index 51ffc7915107..e0c9373bbf2b 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/AboutAction.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/AboutAction.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,32 +21,34 @@ import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.application.ApplicationNamesInfo; import com.intellij.openapi.project.DumbAware; +import com.intellij.openapi.project.Project; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.wm.WindowManager; +import org.jetbrains.annotations.Nullable; import java.awt.*; public class AboutAction extends AnAction implements DumbAware { - + @Override public void update(AnActionEvent e) { e.getPresentation().setVisible(!SystemInfo.isMacSystemMenu); e.getPresentation().setDescription("Show information about " + ApplicationNamesInfo.getInstance().getFullProductName()); } + @Override public void actionPerformed(AnActionEvent e) { - Window window = WindowManager.getInstance().suggestParentWindow(e.getData(CommonDataKeys.PROJECT)); - + Project project = e.getData(CommonDataKeys.PROJECT); + Window window = WindowManager.getInstance().suggestParentWindow(project); showAboutDialog(window); } public static void showAbout() { - Window window = WindowManager.getInstance().suggestParentWindow( - CommonDataKeys.PROJECT.getData(DataManager.getInstance().getDataContext())); - + @SuppressWarnings("deprecation") Project project = CommonDataKeys.PROJECT.getData(DataManager.getInstance().getDataContext()); + Window window = WindowManager.getInstance().suggestParentWindow(project); showAboutDialog(window); } - private static void showAboutDialog(Window window) { - new AboutDialog(window).setVisible(true); + private static void showAboutDialog(@Nullable Window window) { + new AboutPopup().show(window); } } diff --git a/platform/platform-impl/src/com/intellij/ide/actions/AboutDialog.java b/platform/platform-impl/src/com/intellij/ide/actions/AboutPopup.java similarity index 64% rename from platform/platform-impl/src/com/intellij/ide/actions/AboutDialog.java rename to platform/platform-impl/src/com/intellij/ide/actions/AboutPopup.java index 015afd344dd9..42eed245bbd0 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/AboutDialog.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/AboutPopup.java @@ -24,22 +24,23 @@ import com.intellij.openapi.application.ex.ApplicationInfoEx; import com.intellij.openapi.application.impl.ApplicationInfoImpl; import com.intellij.openapi.ide.CopyPasteManager; import com.intellij.openapi.project.DumbAwareAction; +import com.intellij.openapi.ui.popup.JBPopupFactory; import com.intellij.openapi.util.IconLoader; -import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.wm.IdeFocusManager; -import com.intellij.ui.ClickListener; import com.intellij.ui.LicensingFacade; import com.intellij.ui.UI; +import com.intellij.ui.awt.RelativePoint; import com.intellij.util.text.DateFormatUtil; import com.intellij.util.ui.UIUtil; -import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.awt.*; import java.awt.datatransfer.StringSelection; -import java.awt.event.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.MouseMotionAdapter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; @@ -49,137 +50,93 @@ import java.util.Properties; /** * @author Konstantin Bulenkov */ -@SuppressWarnings("SSBasedInspection") -public class AboutDialog extends JDialog { - - public AboutDialog(Window owner) { - super(owner); - init(owner); - } - - - private void init(Window window) { +public class AboutPopup { + public void show(@Nullable Window window) { ApplicationInfoEx appInfo = (ApplicationInfoEx)ApplicationInfo.getInstance(); - JPanel mainPanel = new JPanel(new BorderLayout()); - mainPanel.setFocusable(true); //doesn't work under Oracle 1.7 if nothing focusable - final JComponent closeListenerOwner; + + JPanel panel = new JPanel(new BorderLayout()); Icon image = IconLoader.getIcon(appInfo.getAboutImageUrl()); - final InfoSurface infoSurface; if (appInfo.showLicenseeInfo()) { - infoSurface = new InfoSurface(image); + final InfoSurface infoSurface = new InfoSurface(image); infoSurface.setPreferredSize(new Dimension(image.getIconWidth(), image.getIconHeight())); - mainPanel.add(infoSurface, BorderLayout.NORTH); + panel.add(infoSurface, BorderLayout.NORTH); - closeListenerOwner = infoSurface; - } - else { - infoSurface = null; - mainPanel.add(new JLabel(image), BorderLayout.NORTH); - closeListenerOwner = mainPanel; - } - setUndecorated(true); - setContentPane(mainPanel); - final Ref showTime = Ref.create(System.currentTimeMillis()); - - new DumbAwareAction() { - @Override - public void actionPerformed(AnActionEvent e) { - if (infoSurface != null) { + new DumbAwareAction() { + @Override + public void actionPerformed(AnActionEvent e) { copyInfoToClipboard(infoSurface.getText()); } - } - }.registerCustomShortcutSet(CustomShortcutSet.fromString("meta C", "control C"), mainPanel); + }.registerCustomShortcutSet(CustomShortcutSet.fromString("meta C", "control C"), panel); + } + else { + panel.add(new JLabel(image), BorderLayout.NORTH); + } - new DumbAwareAction() { + RelativePoint location; + if (window != null) { + Rectangle r = window.getBounds(); + location = new RelativePoint(window, new Point((r.width - image.getIconWidth()) / 2, (r.height - image.getIconHeight()) / 2)); + } + else { + Rectangle r = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().getBounds(); + location = new RelativePoint(new Point((r.width - image.getIconWidth()) / 2, (r.height - image.getIconHeight()) / 2)); + } - @Override - public void actionPerformed(AnActionEvent e) { - dispose(); - } - }.registerCustomShortcutSet(CustomShortcutSet.fromString("ESCAPE"), mainPanel); - - //final long delta = Patches.APPLE_BUG_ID_3716865 ? 100 : 0; - final long delta = 500; //reproducible on Windows too - - addWindowFocusListener(new WindowFocusListener() { - public void windowGainedFocus(WindowEvent e) { - } - - public void windowLostFocus(WindowEvent e) { - if (e.getOppositeWindow() == null) return; - long eventTime = System.currentTimeMillis(); - if (eventTime - showTime.get() > delta && e.getOppositeWindow() != e.getWindow()) { - dispose(); - } - else { - IdeFocusManager.getGlobalInstance().requestFocus(AboutDialog.this, true); - } - } - }); - - new ClickListener() { - @Override - public boolean onClick(@NotNull MouseEvent event, int clickCount) { - dispose(); - return true; - } - }.installOn(closeListenerOwner); - - pack(); - - setLocationRelativeTo(window); + JBPopupFactory.getInstance().createComponentPopupBuilder(panel, panel) + .setRequestFocus(true) + .setFocusable(true) + .setResizable(false) + .setMovable(false) + .setModalContext(false) + .setShowShadow(true) + .setShowBorder(false) + .setCancelKeyEnabled(true) + .setCancelOnClickOutside(true) + .setCancelOnOtherWindowOpen(true) + .createPopup() + .show(location); } private static void copyInfoToClipboard(String text) { try { CopyPasteManager.getInstance().setContents(new StringSelection(text)); } - catch (Exception ignore) { - } + catch (Exception ignore) { } } private static class InfoSurface extends JPanel { - final Color col; - final Color linkCol; + private final Color myColor; + private final Color myLinkColor; private final Icon myImage; private Font myFont; private Font myBoldFont; private final List myLines = new ArrayList(); private StringBuilder myInfo = new StringBuilder(); - - private static class Link { - private final Rectangle rectangle; - private final String url; - - private Link(Rectangle rectangle, String url) { - this.rectangle = rectangle; - this.url = url; - } - } - + private final List myLinks = new ArrayList(); private Link myActiveLink; - private final List myLinks = new ArrayList(); - public InfoSurface(Icon image) { + ApplicationInfoImpl appInfo = (ApplicationInfoImpl)ApplicationInfoEx.getInstanceEx(); + myImage = image; + //noinspection UseJBColor + myColor = Color.white; + myLinkColor = appInfo.getAboutLinkColor() != null ? appInfo.getAboutLinkColor() : UI.getColor("link.foreground"); setOpaque(false); - col = Color.white; - final ApplicationInfoImpl ideInfo = (ApplicationInfoImpl)ApplicationInfoEx.getInstanceEx(); - linkCol = ideInfo.getAboutLinkColor() != null ? ideInfo.getAboutLinkColor() : UI.getColor("link.foreground"); - setBackground(col); - Calendar cal = ideInfo.getBuildDate(); - myLines.add(new AboutBoxLine(ideInfo.getFullApplicationName(), true, null)); + setBackground(myColor); + + Calendar cal = appInfo.getBuildDate(); + myLines.add(new AboutBoxLine(appInfo.getFullApplicationName(), true, null)); appendLast(); - String buildInfo = IdeBundle.message("aboutbox.build.number", ideInfo.getBuild().asString()); + String buildInfo = IdeBundle.message("about.box.build.number", appInfo.getBuild().asString()); String buildDate = ""; - if (ideInfo.getBuild().isSnapshot()) { + if (appInfo.getBuild().isSnapshot()) { buildDate = new SimpleDateFormat("HH:mm, ").format(cal.getTime()); } buildDate += DateFormatUtil.formatAboutDialogDate(cal.getTime()); - buildInfo += IdeBundle.message("aboutbox.build.date", buildDate); + buildInfo += IdeBundle.message("about.box.build.date", buildDate); myLines.add(new AboutBoxLine(buildInfo)); appendLast(); @@ -192,23 +149,21 @@ public class AboutDialog extends JDialog { myLines.add(new AboutBoxLine(message)); } } + myLines.add(new AboutBoxLine("")); - final Properties properties = System.getProperties(); - final String javaVersion = properties.getProperty("java.runtime.version", properties.getProperty("java.version", "unknown")); - final String arch = properties.getProperty("os.arch", ""); - myLines.add(new AboutBoxLine(IdeBundle.message("aboutbox.jdk", javaVersion, arch), true, null)); - appendLast(); - myLines.add(new AboutBoxLine(IdeBundle.message("aboutbox.vm", properties.getProperty("java.vm.name", "unknown"), - properties.getProperty("java.vendor", "unknown")))); + Properties properties = System.getProperties(); + String javaVersion = properties.getProperty("java.runtime.version", properties.getProperty("java.version", "unknown")); + String arch = properties.getProperty("os.arch", ""); + myLines.add(new AboutBoxLine(IdeBundle.message("about.box.jre", javaVersion, arch))); appendLast(); - /* - myLines.add(new AboutBoxLine("")); - myLines.add(new AboutBoxLine(info.getCompanyURL(), true, info.getCompanyURL())); - */ + String vmVersion = properties.getProperty("java.vm.name", "unknown"); + String vmVendor = properties.getProperty("java.vendor", "unknown"); + myLines.add(new AboutBoxLine(IdeBundle.message("about.box.vm", vmVersion, vmVendor))); + appendLast(); - String thirdParty = ideInfo.getThirdPartySoftwareURL(); + String thirdParty = appInfo.getThirdPartySoftwareURL(); if (thirdParty != null) { myLines.add(new AboutBoxLine("")); myLines.add(new AboutBoxLine("")); @@ -217,19 +172,22 @@ public class AboutDialog extends JDialog { } addMouseListener(new MouseAdapter() { + @Override public void mousePressed(MouseEvent event) { if (myActiveLink != null) { event.consume(); - BrowserUtil.browse(myActiveLink.url); + BrowserUtil.browse(myActiveLink.myUrl); } } }); + addMouseMotionListener(new MouseMotionAdapter() { + @Override public void mouseMoved(MouseEvent event) { boolean hadLink = (myActiveLink != null); myActiveLink = null; for (Link link : myLinks) { - if (link.rectangle.contains(event.getPoint())) { + if (link.myRectangle.contains(event.getPoint())) { myActiveLink = link; if (!hadLink) { setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); @@ -251,6 +209,7 @@ public class AboutDialog extends JDialog { @Override protected void paintChildren(Graphics g) { super.paintChildren(g); + Graphics2D g2 = (Graphics2D)g; UIUtil.applyRenderingHints(g); @@ -258,12 +217,13 @@ public class AboutDialog extends JDialog { if (SystemInfo.isWindows) { labelFont = new Font("Tahoma", Font.PLAIN, 12); } + for (int labelSize = 10; labelSize != 6; labelSize -= 1) { myLinks.clear(); - g2.setPaint(col); + g2.setPaint(myColor); myImage.paintIcon(this, g2, 0, 0); - g2.setColor(col); + g2.setColor(myColor); TextRenderer renderer = new TextRenderer(0, 165, 398, 120, g2); UIUtil.setupComposite(g2); myFont = labelFont.deriveFont(Font.PLAIN, labelSize); @@ -272,8 +232,7 @@ public class AboutDialog extends JDialog { renderer.render(30, 0, myLines); break; } - catch (TextRenderer.OverflowException ignore) { - } + catch (TextRenderer.OverflowException ignore) { } } ApplicationInfo appInfo = ApplicationInfo.getInstance(); @@ -287,7 +246,7 @@ public class AboutDialog extends JDialog { return myInfo.toString(); } - public class TextRenderer { + private class TextRenderer { private final int xBase; private final int yBase; private final int w; @@ -301,8 +260,7 @@ public class AboutDialog extends JDialog { private int fontHeight; private Font font; - public class OverflowException extends Exception { - } + public class OverflowException extends Exception { } public TextRenderer(final int xBase, final int yBase, final int w, final int h, final Graphics2D g2) { this.xBase = xBase; @@ -324,7 +282,7 @@ public class AboutDialog extends JDialog { final String s = line.getText(); setFont(line.isBold() ? myBoldFont : myFont); if (line.getUrl() != null) { - g2.setColor(linkCol); + g2.setColor(myLinkColor); FontMetrics metrics = g2.getFontMetrics(font); myLinks.add(new Link(new Rectangle(x, yBase + y - fontAscent, metrics.stringWidth(s), fontHeight), line.getUrl())); } @@ -390,45 +348,55 @@ public class AboutDialog extends JDialog { fontHeight = fontmetrics.getHeight(); } } - } - private static class AboutBoxLine { - private final String myText; - private final boolean myBold; - private final String myUrl; - private boolean myKeepWithNext; + private static class AboutBoxLine { + private final String myText; + private final boolean myBold; + private final String myUrl; + private boolean myKeepWithNext; - public AboutBoxLine(final String text, final boolean bold, final String url) { - myText = text; - myBold = bold; - myUrl = url; + public AboutBoxLine(final String text, final boolean bold, final String url) { + myText = text; + myBold = bold; + myUrl = url; + } + + public AboutBoxLine(final String text) { + myText = text; + myBold = false; + myUrl = null; + } + + public String getText() { + return myText; + } + + public boolean isBold() { + return myBold; + } + + public String getUrl() { + return myUrl; + } + + public boolean isKeepWithNext() { + return myKeepWithNext; + } + + public AboutBoxLine keepWithNext() { + myKeepWithNext = true; + return this; + } } - public AboutBoxLine(final String text) { - myText = text; - myBold = false; - myUrl = null; - } + private static class Link { + private final Rectangle myRectangle; + private final String myUrl; - public String getText() { - return myText; - } - - public boolean isBold() { - return myBold; - } - - public String getUrl() { - return myUrl; - } - - public boolean isKeepWithNext() { - return myKeepWithNext; - } - - public AboutBoxLine keepWithNext() { - myKeepWithNext = true; - return this; + private Link(Rectangle rectangle, String url) { + myRectangle = rectangle; + myUrl = url; + } } } } diff --git a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java index 0e2e240d9571..0d3070f97aea 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java @@ -818,7 +818,7 @@ public class ApplicationImpl extends PlatformComponentManagerImpl implements App } int exitCode = 0; - if (restart) { + if (restart && Restarter.isSupported()) { try { exitCode = Restarter.scheduleRestart(); } @@ -1026,7 +1026,8 @@ public class ApplicationImpl extends PlatformComponentManagerImpl implements App if (myHeadlessMode) return; if (!isReadAccessAllowed()) { LOG.error( - "Read access is allowed from event dispatch thread or inside read-action only (see com.intellij.openapi.application.Application.runReadAction())", + "Read access is allowed from event dispatch thread or inside read-action only" + + " (see com.intellij.openapi.application.Application.runReadAction())", "Current thread: " + describe(Thread.currentThread()), "Our dispatch thread:" + describe(ourDispatchThread), "SystemEventQueueThread: " + describe(getEventQueueThread())); } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeMenuBar.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeMenuBar.java index 8d3d0c15b0f8..ec32bd1a6f2c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeMenuBar.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeMenuBar.java @@ -154,14 +154,14 @@ public class IdeMenuBar extends JMenuBar implements IdeEventQueue.EventDispatche @Override public void doLayout() { super.doLayout(); - if (myClockPanel != null) { + if (myClockPanel != null && myButton != null) { if (myState != State.EXPANDED) { myClockPanel.setVisible(true); myButton.setVisible(true); - Dimension preferredSize = myClockPanel.getPreferredSize(); - myClockPanel.setBounds(getBounds().width - preferredSize.width, 0, preferredSize.width, preferredSize.height); - preferredSize = myButton.getPreferredSize(); - myButton.setBounds(getBounds().width - preferredSize.width * 2 - myClockPanel.getWidth(), 0, preferredSize.width, preferredSize.height); + Dimension preferredSize = myButton.getPreferredSize(); + myButton.setBounds(getBounds().width - preferredSize.width, 0, preferredSize.width, preferredSize.height); + preferredSize = myClockPanel.getPreferredSize(); + myClockPanel.setBounds(getBounds().width - preferredSize.width - myButton.getWidth(), 0, preferredSize.width, preferredSize.height); } else { myClockPanel.setVisible(false); diff --git a/platform/platform-impl/src/com/intellij/ui/messages/SheetController.java b/platform/platform-impl/src/com/intellij/ui/messages/SheetController.java index 586f76b64f36..108b2fdf4fd9 100755 --- a/platform/platform-impl/src/com/intellij/ui/messages/SheetController.java +++ b/platform/platform-impl/src/com/intellij/ui/messages/SheetController.java @@ -16,25 +16,18 @@ package com.intellij.ui.messages; import com.intellij.icons.AllIcons; -import com.intellij.openapi.application.PathManager; -import com.intellij.openapi.application.ex.ApplicationInfoEx; import com.intellij.openapi.ui.DialogWrapper; -import com.intellij.ui.AppUIUtil; import com.intellij.ui.Gray; import com.intellij.ui.JBColor; import com.intellij.util.ui.UIUtil; import org.jdesktop.swingx.graphics.GraphicsUtilities; import org.jdesktop.swingx.graphics.ShadowRenderer; -import javax.imageio.ImageIO; import javax.swing.*; -import javax.swing.plaf.UIResource; import java.awt.*; import java.awt.event.*; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; -import java.io.File; -import java.io.IOException; /** * Created by Denis Fokin @@ -260,7 +253,7 @@ public class SheetController { recalculateShadow(); - sheetPanel.setSize(SHEET_NC_WIDTH, SHEET_NC_HEIGHT ); + sheetPanel.setSize(SHEET_NC_WIDTH + 200, SHEET_NC_HEIGHT + 200); return sheetPanel; } @@ -281,14 +274,16 @@ public class SheetController { private void paintShadow(Graphics2D g2d) { - if (myOffscreenShadowImage.getWidth() != SHEET_NC_WIDTH || myOffscreenShadowImage.getHeight() != SHEET_HEIGHT) { - myOffscreenShadowImage = GraphicsUtilities.createCompatibleTranslucentImage( - SHEET_WIDTH, SHEET_HEIGHT); + if (myOffscreenShadowImage.getWidth() != SHEET_WIDTH || myOffscreenShadowImage.getHeight() != SHEET_HEIGHT) { + myOffscreenShadowImage = new BufferedImage(SHEET_WIDTH, SHEET_HEIGHT, BufferedImage.TYPE_INT_ARGB); } + g2d.setBackground(new JBColor(new Color(255, 255, 255, 0), new Color(110, 110, 110, 0))); + g2d.clearRect(0, 0, SHEET_NC_WIDTH, SHEET_NC_HEIGHT); + Graphics2D g2 = myOffscreenShadowImage.createGraphics(); g2.setColor(new JBColor(Gray._255, Gray._0)); - g2.fillRoundRect(0, 0, SHEET_WIDTH - 1, SHEET_HEIGHT - 1, SHADOW_BORDER, SHADOW_BORDER); + g2.fillRect(0, 0, SHEET_WIDTH, SHEET_HEIGHT); g2.dispose(); ShadowRenderer renderer = new ShadowRenderer(); @@ -296,9 +291,9 @@ public class SheetController { renderer.setOpacity(.95f); renderer.setColor(new JBColor(JBColor.BLACK, Gray._10)); BufferedImage shadow = renderer.createShadow(myOffscreenShadowImage); - g2d.drawImage(shadow, 0, - SHADOW_BORDER, null); - g2d.setBackground(new JBColor(new Color(255, 255, 255, 0), new Color(110, 110, 110, 0))); - g2d.clearRect(SHADOW_BORDER, 0, SHEET_WIDTH, SHEET_HEIGHT); + g2d.drawImage(shadow, 0, -SHADOW_BORDER, null); + //g2d.setBackground(new JBColor(new Color(255, 255, 255, 0), new Color(110, 110, 110, 0))); + //g2d.clearRect(SHADOW_BORDER, 0, SHEET_WIDTH, SHEET_HEIGHT); } private void layoutButtons(final JButton[] buttons, JPanel panel) { @@ -347,9 +342,13 @@ public class SheetController { myOffScreenFrame.add(mySheetPanel); myOffScreenFrame.getRootPane().setDefaultButton(myDefaultButton); - final BufferedImage image = UIUtil.createImage(SHEET_NC_WIDTH, SHEET_NC_HEIGHT, BufferedImage.TYPE_INT_ARGB); + final BufferedImage image = new BufferedImage(SHEET_NC_WIDTH, SHEET_NC_HEIGHT, BufferedImage.TYPE_INT_ARGB); + + Graphics g = image.createGraphics(); + mySheetPanel.paint(g); + + g.dispose(); - mySheetPanel.paint(image.createGraphics()); myOffScreenFrame.dispose(); return image; } diff --git a/platform/platform-impl/src/com/intellij/ui/messages/SheetMessage.java b/platform/platform-impl/src/com/intellij/ui/messages/SheetMessage.java index 24392475d53b..e54589454afc 100755 --- a/platform/platform-impl/src/com/intellij/ui/messages/SheetMessage.java +++ b/platform/platform-impl/src/com/intellij/ui/messages/SheetMessage.java @@ -105,6 +105,9 @@ public class SheetMessage { if (staticImage != null) { Graphics2D g2d = (Graphics2D) g.create(); + g2d.setBackground(new JBColor(new Color(255, 255, 255, 0), new Color(110, 110, 110, 0))); + g2d.clearRect(0, 0, myController.SHEET_NC_WIDTH, myController.SHEET_NC_HEIGHT); + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.95f)); int imageCropOffset = (UIUtil.isRetina()) ? imageHeight * 2 : imageHeight; diff --git a/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java b/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java index 0e09ea52214d..f3b20876915e 100644 --- a/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java +++ b/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java @@ -57,20 +57,19 @@ import javax.swing.*; import javax.swing.border.EmptyBorder; import java.awt.*; import java.awt.event.*; -import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class AbstractPopup implements JBPopup { + public static final String SHOW_HINTS = "ShowHints"; + private static final Logger LOG = Logger.getInstance("#com.intellij.ui.popup.AbstractPopup"); private static final Object SUPPRESS_MAC_CORNER = new Object(); - @NonNls public static final String SHOW_HINTS = "ShowHints"; - /** - * X server sometimes focuses focusable popups upon appearance, ignoring the fact that we didn't ask to focus them - */ - private static final boolean ourXWindowIDEA94683FocusBug = SystemInfo.isXWindow; + + // X server sometimes focuses focusable popups upon appearance, ignoring the fact that we didn't ask to focus them (IDEA-94683) + private static final boolean X_WINDOW_FOCUS_BUG = SystemInfo.isXWindow; private PopupComponent myPopup; private MyContentPanel myContent; @@ -99,9 +98,8 @@ public class AbstractPopup implements JBPopup { private boolean myLocateByContent; protected FocusTrackback myFocusTrackback; private Dimension myMinSize; - private ArrayList myUserData; + private List myUserData; private boolean myShadowed; - private boolean myPaintShadow; private float myAlpha = 0; private float myLastAlpha = 0; @@ -164,32 +162,30 @@ public class AbstractPopup implements JBPopup { private UiActivity myActivityKey; private Disposable myProjectDisposable; - AbstractPopup() { - } + AbstractPopup() { } - AbstractPopup init(final Project project, - @NotNull final JComponent component, - @Nullable final JComponent preferredFocusedComponent, - final boolean requestFocus, - final boolean focusable, - final boolean forceHeavyweight, - final boolean movable, - final String dimensionServiceKey, - final boolean resizable, - @Nullable final String caption, - @Nullable final Computable callback, - final boolean cancelOnClickOutside, - @Nullable final Set listeners, - final boolean useDimServiceForXYLocation, + AbstractPopup init(Project project, + @NotNull JComponent component, + @Nullable JComponent preferredFocusedComponent, + boolean requestFocus, + boolean focusable, + boolean movable, + String dimensionServiceKey, + boolean resizable, + @Nullable String caption, + @Nullable Computable callback, + boolean cancelOnClickOutside, + @Nullable Set listeners, + boolean useDimServiceForXYLocation, ActiveComponent commandButton, - @Nullable final IconButton cancelButton, - @Nullable final MouseChecker cancelOnMouseOutCallback, - final boolean cancelOnWindow, - @Nullable final ActiveIcon titleIcon, - final boolean cancelKeyEnabled, - final boolean locateBycontent, - final boolean placeWithinScreenBounds, - @Nullable final Dimension minSize, + @Nullable IconButton cancelButton, + @Nullable MouseChecker cancelOnMouseOutCallback, + boolean cancelOnWindow, + @Nullable ActiveIcon titleIcon, + boolean cancelKeyEnabled, + boolean locateByContent, + boolean placeWithinScreenBounds, + @Nullable Dimension minSize, float alpha, @Nullable MaskProvider maskProvider, boolean inStack, @@ -197,25 +193,25 @@ public class AbstractPopup implements JBPopup { @Nullable Component[] focusOwners, @Nullable String adText, int adTextAlignment, - final boolean headerAlwaysFocusable, + boolean headerAlwaysFocusable, @NotNull List> keyboardActions, Component settingsButtons, @Nullable final Processor pinCallback, boolean mayBeParent, boolean showShadow, + boolean showBorder, boolean cancelOnWindowDeactivation, @Nullable BooleanFunction keyEventHandler) { if (requestFocus && !focusable) { - assert false : "Incorrect argument combination: requestFocus=" + requestFocus + " focusable=" + focusable; + assert false : "Incorrect argument combination: requestFocus=true focusable=false"; } myActivityKey = new UiActivity.Focus("Popup:" + this); myProject = project; myComponent = component; - myPopupBorder = PopupBorder.Factory.create(true, showShadow); + myPopupBorder = showBorder ? PopupBorder.Factory.create(true, showShadow) : PopupBorder.Factory.createEmpty(); myShadowed = showShadow; - myPaintShadow = showShadow && !SystemInfo.isMac && !movable && !resizable && Registry.is("ide.popup.dropShadow"); myContent = createContentPanel(resizable, myPopupBorder, isToDrawMacCorner() && resizable); myMayBeParent = mayBeParent; myCancelOnWindowDeactivation = cancelOnWindowDeactivation; @@ -226,7 +222,7 @@ public class AbstractPopup implements JBPopup { } myCancelKeyEnabled = cancelKeyEnabled; - myLocateByContent = locateBycontent; + myLocateByContent = locateByContent; myLocateWithinScreen = placeWithinScreenBounds; myAlpha = alpha; myMaskProvider = maskProvider; @@ -250,15 +246,15 @@ public class AbstractPopup implements JBPopup { } if (pinCallback != null) { - myCaption.setButtonComponent(new InplaceButton(new IconButton("Pin", AllIcons.General.AutohideOff, - AllIcons.General.AutohideOff, - AllIcons.General.AutohideOffInactive), - new ActionListener() { - @Override - public void actionPerformed(final ActionEvent e) { - pinCallback.process(AbstractPopup.this); - } - })); + myCaption.setButtonComponent(new InplaceButton( + new IconButton("Pin", AllIcons.General.AutohideOff, AllIcons.General.AutohideOff, AllIcons.General.AutohideOffInactive), + new ActionListener() { + @Override + public void actionPerformed(final ActionEvent e) { + pinCallback.process(AbstractPopup.this); + } + } + )); } else if (cancelButton != null) { myCaption.setButtonComponent(new InplaceButton(cancelButton, new ActionListener() { @@ -867,6 +863,7 @@ public class AbstractPopup implements JBPopup { }; if (myNativePopup) { final FocusRequestor furtherRequestor = getFocusManager().getFurtherRequestor(); + //noinspection SSBasedInspection SwingUtilities.invokeLater(new Runnable() { @Override public void run() { @@ -919,7 +916,7 @@ public class AbstractPopup implements JBPopup { return; } - if (ourXWindowIDEA94683FocusBug && !myRequestFocus && prevOwner != null && + if (X_WINDOW_FOCUS_BUG && !myRequestFocus && prevOwner != null && Registry.is("actionSystem.xWindow.remove.focus.from.nonFocusable.popups")) { new Alarm().addRequest(new Runnable() { @Override @@ -1242,17 +1239,18 @@ public class AbstractPopup implements JBPopup { resetWindow(); if (myFinalRunnable != null) { - final ActionCallback typeaheadDone = new ActionCallback(); + final ActionCallback typeAheadDone = new ActionCallback(); Runnable runFinal = new Runnable() { @Override public void run() { - SwingUtilities.invokeLater(typeaheadDone.createSetDoneRunnable()); + //noinspection SSBasedInspection + SwingUtilities.invokeLater(typeAheadDone.createSetDoneRunnable()); myFinalRunnable.run(); myFinalRunnable = null; } }; - IdeFocusManager.getInstance(myProject).typeAheadUntil(typeaheadDone); + IdeFocusManager.getInstance(myProject).typeAheadUntil(typeAheadDone); getFocusManager().doWhenFocusSettlesDown(runFinal); } } @@ -1338,12 +1336,7 @@ public class AbstractPopup implements JBPopup { return myCancelOnWindowDeactivation; } - public void setCancelOnWindowDeactivation(boolean cancelOnWindowDeactivation) { - myCancelOnWindowDeactivation = cancelOnWindowDeactivation; - } - private class Canceller implements AWTEventListener { - private boolean myEverEntered = false; @Override @@ -1525,7 +1518,7 @@ public class AbstractPopup implements JBPopup { return myPopup.getWindow(); } - public void setUserData(ArrayList userData) { + public void setUserData(List userData) { myUserData = userData; } @@ -1534,8 +1527,8 @@ public class AbstractPopup implements JBPopup { if (myUserData != null) { for (Object o : myUserData) { if (userDataClass.isInstance(o)) { - //noinspection unchecked - return (T)o; + @SuppressWarnings("unchecked") T t = (T)o; + return t; } } } @@ -1672,10 +1665,6 @@ public class AbstractPopup implements JBPopup { } } - public Runnable getFinalRunnable() { - return myFinalRunnable; - } - @Override public void setFinalRunnable(Runnable finalRunnable) { myFinalRunnable = finalRunnable; diff --git a/platform/platform-impl/src/com/intellij/ui/popup/ComponentPopupBuilderImpl.java b/platform/platform-impl/src/com/intellij/ui/popup/ComponentPopupBuilderImpl.java index 5aefe15540ed..2b5f8a294310 100644 --- a/platform/platform-impl/src/com/intellij/ui/popup/ComponentPopupBuilderImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/popup/ComponentPopupBuilderImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.intellij.ui.popup; import com.intellij.openapi.application.ApplicationManager; @@ -38,8 +37,8 @@ import java.util.*; import java.util.List; /** - * User: anna - * Date: 15-Mar-2006 + * @author anna + * @since 15-Mar-2006 */ public class ComponentPopupBuilderImpl implements ComponentPopupBuilder { private String myTitle = ""; @@ -48,7 +47,6 @@ public class ComponentPopupBuilderImpl implements ComponentPopupBuilder { private final JComponent myComponent; private final JComponent myPreferredFocusedComponent; private boolean myRequestFocus; - private boolean myForceHeavyweight; private String myDimensionServiceKey = null; private Computable myCallback = null; private Project myProject; @@ -63,12 +61,11 @@ public class ComponentPopupBuilderImpl implements ComponentPopupBuilder { private ActiveIcon myTitleIcon = new ActiveIcon(EmptyIcon.ICON_0); private boolean myCancelKeyEnabled = true; private boolean myLocateByContent = false; - private boolean myPlacewithinScreen = true; + private boolean myPlaceWithinScreen = true; private Processor myPinCallback = null; private Dimension myMinSize; - private MaskProvider myMaskProvider; private float myAlpha; - private ArrayList myUserData; + private List myUserData; private boolean myInStack = true; private boolean myModalContext = true; @@ -76,8 +73,8 @@ public class ComponentPopupBuilderImpl implements ComponentPopupBuilder { private String myAd; private boolean myShowShadow = true; + private boolean myShowBorder = true; private boolean myFocusable = true; - private boolean myHeaderAlwaysFocusable; private ActiveComponent myCommandButton; private List> myKeyboardActions = Collections.emptyList(); private Component mySettingsButtons; @@ -85,8 +82,7 @@ public class ComponentPopupBuilderImpl implements ComponentPopupBuilder { private int myAdAlignment = SwingConstants.LEFT; private BooleanFunction myKeyEventHandler; - public ComponentPopupBuilderImpl(@NotNull JComponent component, - final JComponent preferredFocusedComponent) { + public ComponentPopupBuilderImpl(@NotNull JComponent component, JComponent preferredFocusedComponent) { myComponent = component; myPreferredFocusedComponent = preferredFocusedComponent; } @@ -156,15 +152,8 @@ public class ComponentPopupBuilderImpl implements ComponentPopupBuilder { @Override @NotNull - public ComponentPopupBuilder setForceHeavyweight(final boolean forceHeavyweight) { - myForceHeavyweight = forceHeavyweight; - return this; - } - - @Override - @NotNull - public ComponentPopupBuilder setDimensionServiceKey(final Project project, final String dimensionServiceKey, final boolean useForXYLocation) { - myDimensionServiceKey = dimensionServiceKey; + public ComponentPopupBuilder setDimensionServiceKey(final Project project, final String key, final boolean useForXYLocation) { + myDimensionServiceKey = key; myUseDimServiceForXYLocation = useForXYLocation; myProject = project; return this; @@ -227,7 +216,7 @@ public class ComponentPopupBuilderImpl implements ComponentPopupBuilder { @NotNull @Override public ComponentPopupBuilder setKeyEventHandler(@NotNull BooleanFunction handler) { - myKeyEventHandler = handler; + myKeyEventHandler = handler; return this; } @@ -241,18 +230,17 @@ public class ComponentPopupBuilderImpl implements ComponentPopupBuilder { @Override @NotNull public JBPopup createPopup() { - final AbstractPopup popup = new AbstractPopup().init(myProject, myComponent, myPreferredFocusedComponent, myRequestFocus, myFocusable, myForceHeavyweight, - myMovable, myDimensionServiceKey, myResizable, myTitle, - myCallback, myCancelOnClickOutside, myListeners, myUseDimServiceForXYLocation, myCommandButton, - myCancelButton, - myCancelOnMouseOutCallback, myCancelOnWindow, myTitleIcon, myCancelKeyEnabled, myLocateByContent, - myPlacewithinScreen, myMinSize, myAlpha, myMaskProvider, myInStack, myModalContext, myFocusOwners, myAd, myAdAlignment, - myHeaderAlwaysFocusable, myKeyboardActions, mySettingsButtons, myPinCallback, myMayBeParent, - myShowShadow, myCancelOnWindowDeactivation, myKeyEventHandler); + AbstractPopup popup = new AbstractPopup().init( + myProject, myComponent, myPreferredFocusedComponent, myRequestFocus, myFocusable, myMovable, myDimensionServiceKey, + myResizable, myTitle, myCallback, myCancelOnClickOutside, myListeners, myUseDimServiceForXYLocation, myCommandButton, + myCancelButton, myCancelOnMouseOutCallback, myCancelOnWindow, myTitleIcon, myCancelKeyEnabled, myLocateByContent, + myPlaceWithinScreen, myMinSize, myAlpha, null, myInStack, myModalContext, myFocusOwners, myAd, myAdAlignment, + false, myKeyboardActions, mySettingsButtons, myPinCallback, myMayBeParent, + myShowShadow, myShowBorder, myCancelOnWindowDeactivation, myKeyEventHandler + ); if (myUserData != null) { popup.setUserData(myUserData); } - //default disposable parent Disposer.register(ApplicationManager.getApplication(), popup); return popup; } @@ -288,7 +276,7 @@ public class ComponentPopupBuilderImpl implements ComponentPopupBuilder { @Override @NotNull public ComponentPopupBuilder setLocateWithinScreenBounds(final boolean within) { - myPlacewithinScreen = within; + myPlaceWithinScreen = within; return this; } @@ -299,12 +287,6 @@ public class ComponentPopupBuilderImpl implements ComponentPopupBuilder { return this; } - @NotNull - public ComponentPopupBuilder setMaskProvider(MaskProvider maskProvider) { - myMaskProvider = maskProvider; - return this; - } - @Override @NotNull public ComponentPopupBuilder setAlpha(final float alpha) { @@ -363,4 +345,11 @@ public class ComponentPopupBuilderImpl implements ComponentPopupBuilder { myShowShadow = show; return this; } + + @NotNull + @Override + public ComponentPopupBuilder setShowBorder(boolean show) { + myShowBorder = show; + return this; + } } diff --git a/platform/platform-impl/src/com/intellij/ui/popup/WizardPopup.java b/platform/platform-impl/src/com/intellij/ui/popup/WizardPopup.java index b1ed30f9a1a8..04c38a6cc295 100644 --- a/platform/platform-impl/src/com/intellij/ui/popup/WizardPopup.java +++ b/platform/platform-impl/src/com/intellij/ui/popup/WizardPopup.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -89,10 +89,10 @@ public abstract class WizardPopup extends AbstractPopup implements ActionListene scrollPane.setBorder(null); final Project project = CommonDataKeys.PROJECT.getData(DataManager.getInstance().getDataContext()); - init(project, scrollPane, getPreferredFocusableComponent(), true, true, true, true, null, + init(project, scrollPane, getPreferredFocusableComponent(), true, true, true, null, false, aStep.getTitle(), null, true, null, false, null, null, null, false, null, true, false, true, null, 0f, - null, true, false, new Component[0], null, SwingConstants.LEFT, true, Collections.>emptyList(), null, null, false, true, - true, null); + null, true, false, new Component[0], null, SwingConstants.LEFT, true, Collections.>emptyList(), + null, null, false, true, true, true, null); registerAction("disposeAll", KeyEvent.VK_ESCAPE, InputEvent.SHIFT_MASK, new AbstractAction() { @Override @@ -313,7 +313,7 @@ public abstract class WizardPopup extends AbstractPopup implements ActionListene final Rectangle r = ScreenUtil.getScreenRectangle(locationOnScreen); resultHeight = ofContent.height > r.height - (r.height / 4) ? r.height - (r.height / 4) : ofContent.height; } - + int resultWidth = ofContent.width > MAX_SIZE.width ? MAX_SIZE.width : ofContent.width; if (ofContent.height > MAX_SIZE.height) { diff --git a/platform/platform-resources-en/src/messages/IdeBundle.properties b/platform/platform-resources-en/src/messages/IdeBundle.properties index 0c44be2be4f0..0b09a63996e2 100644 --- a/platform/platform-resources-en/src/messages/IdeBundle.properties +++ b/platform/platform-resources-en/src/messages/IdeBundle.properties @@ -269,11 +269,13 @@ message.educational.license=1-Year Educational License. {0} message.open.source.project.license=Open Source Project License. {0} message.non.commercial.use.only=Non-commercial use only message.personal.license=Personal License -aboutbox.build.number=Build #{0} -aboutbox.build.date=, built on {0} -aboutbox.jdk=JRE : {0} {1} -aboutbox.vm=VM: {0} by {1} -aboutbox.maintenance.due=Entitled for free updates and upgrades until {0,date,MMMM dd, yyyy} + +about.box.build.number=Build #{0} +about.box.build.date=, built on {0} +about.box.jre=JRE: {0} {1} +about.box.vm=JVM: {0} by {1} +about.box.maintenance.due=Entitled for free updates and upgrades until {0,date,MMMM dd, yyyy} + title.warning=Warning message.upgrade.from.previous.required=Your license is not valid for use with this version of {0}.
For information on how to upgrade your license please go to {1}
You can also opt for a free time-limited evaluation. title.upgrade.needed=License Upgrade Needed diff --git a/platform/platform-resources-en/src/misc/registry.properties b/platform/platform-resources-en/src/misc/registry.properties index 2dccf5c5d1ba..cfe55242b539 100644 --- a/platform/platform-resources-en/src/misc/registry.properties +++ b/platform/platform-resources-en/src/misc/registry.properties @@ -332,6 +332,7 @@ git.new.log=true diff.patience.alg=false svn.use.terminal=false +svn.use.incoming.optimization=false svn.check.repository.supports.merge.info=false completion.enable.relevant.method.chain.suggestions=false @@ -378,4 +379,4 @@ ide.scratch.enabled=false editor.injected.highlighting.enabled=true editor.injected.highlighting.enabled.description=Disables injected fragments highlighting (requires project reopening) -ui.no.mac.scrollbar=false \ No newline at end of file +ui.no.mac.scrollbar=false diff --git a/platform/util/src/com/intellij/ui/PopupBorder.java b/platform/util/src/com/intellij/ui/PopupBorder.java index a92202d71d70..217996076652 100644 --- a/platform/util/src/com/intellij/ui/PopupBorder.java +++ b/platform/util/src/com/intellij/ui/PopupBorder.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package com.intellij.ui; import com.intellij.openapi.util.SystemInfo; +import org.jetbrains.annotations.NotNull; import javax.swing.border.Border; import java.awt.*; @@ -25,24 +26,26 @@ public interface PopupBorder extends Border { void setActive(boolean active); class Factory { + private Factory() { } - private Factory() { + @NotNull + public static PopupBorder createEmpty() { + return new BaseBorder(); } + @NotNull public static PopupBorder create(boolean active, boolean windowWithShadow) { - final BaseBorder border = - SystemInfo.isMac && windowWithShadow ? new BaseBorder() : new BaseBorder(true, CaptionPanel.getBorderColor(true), CaptionPanel.getBorderColor(false)); + PopupBorder border = SystemInfo.isMac && windowWithShadow ? + createEmpty() : new BaseBorder(true, CaptionPanel.getBorderColor(true), CaptionPanel.getBorderColor(false)); border.setActive(active); return border; } } class BaseBorder implements PopupBorder { - - private boolean myVisible; - private Color myActiveColor; - private Color myPassiveColor; - + private final boolean myVisible; + private final Color myActiveColor; + private final Color myPassiveColor; private boolean myActive; protected BaseBorder() { @@ -79,6 +82,4 @@ public interface PopupBorder extends Border { return true; } } - - } diff --git a/platform/util/src/com/intellij/util/ui/UIUtil.java b/platform/util/src/com/intellij/util/ui/UIUtil.java index 740975eaeedf..3f7277f79a73 100644 --- a/platform/util/src/com/intellij/util/ui/UIUtil.java +++ b/platform/util/src/com/intellij/util/ui/UIUtil.java @@ -242,21 +242,21 @@ public class UIUtil { return ourRetina.get(); } } else if (SystemInfo.isJavaVersionAtLeast("1.7.0_40") && SystemInfo.isOracleJvm) { + try { GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); final GraphicsDevice device = env.getDefaultScreenDevice(); - try { - Field field = device.getClass().getDeclaredField("scale"); - if (field != null) { - field.setAccessible(true); - Object scale = field.get(device); - if (scale instanceof Integer && ((Integer)scale).intValue() == 2) { - ourRetina.set(true); - return true; - } + Field field = device.getClass().getDeclaredField("scale"); + if (field != null) { + field.setAccessible(true); + Object scale = field.get(device); + if (scale instanceof Integer && ((Integer)scale).intValue() == 2) { + ourRetina.set(true); + return true; } } - catch (Exception ignore) { - } + } + catch (AWTError ignore) {} + catch (Exception ignore) {} } ourRetina.set(false); } diff --git a/platform/util/src/com/intellij/util/xmlb/JDOMXIncluder.java b/platform/util/src/com/intellij/util/xmlb/JDOMXIncluder.java index f73be1c90330..bedc0da0f80a 100644 --- a/platform/util/src/com/intellij/util/xmlb/JDOMXIncluder.java +++ b/platform/util/src/com/intellij/util/xmlb/JDOMXIncluder.java @@ -16,6 +16,7 @@ package com.intellij.util.xmlb; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.JDOMUtil; import com.intellij.openapi.util.io.StreamUtil; import com.intellij.util.io.URLUtil; @@ -32,6 +33,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class JDOMXIncluder { + private static final Logger LOG = Logger.getInstance(JDOMXIncluder.class); + @NonNls private static final String HTTP_WWW_W3_ORG_2001_XINCLUDE = "http://www.w3.org/2001/XInclude"; @NonNls private static final String XI = "xi"; @NonNls private static final String INCLUDE = "include"; @@ -49,7 +52,10 @@ public class JDOMXIncluder { } public static Document resolve(Document original, String base) throws XIncludeException { + return resolve(original, base, false); + } + public static Document resolve(Document original, String base, boolean ignoreMissing) throws XIncludeException { if (original == null) { throw new NullPointerException("Document must not be null"); } @@ -57,7 +63,7 @@ public class JDOMXIncluder { Document result = original.clone(); Element root = result.getRootElement(); - List resolved = resolve(root, base); + List resolved = resolve(root, base, ignoreMissing); // check that the list returned contains // exactly one root element @@ -132,10 +138,14 @@ public class JDOMXIncluder { } public static List resolve(@NotNull Element original, String base) throws XIncludeException { + return resolve(original, base, false); + } + + private static List resolve(@NotNull Element original, String base, boolean ignoreMissing) throws XIncludeException { Stack bases = new Stack(); if (base != null) bases.push(base); - List result = resolve(original, bases); + List result = resolve(original, bases, ignoreMissing); bases.pop(); return result; @@ -148,22 +158,22 @@ public class JDOMXIncluder { return false; } - protected static List resolve(Element original, Stack bases) throws XIncludeException { + + private static List resolve(Element original, Stack bases, boolean ignoreMissing) throws XIncludeException { if (!bases.isEmpty()) bases.peek(); if (isIncludeElement(original)) { - return resolveXIncludeElement(original, bases); + return resolveXIncludeElement(original, bases, ignoreMissing); } else { - Element resolvedElement = resolveNonXIncludeElement(original, bases); + Element resolvedElement = resolveNonXIncludeElement(original, bases, ignoreMissing); List resultList = new ArrayList(1); resultList.add(resolvedElement); return resultList; } - } - private static List resolveXIncludeElement(Element element, Stack bases) throws XIncludeException { + private static List resolveXIncludeElement(Element element, Stack bases, boolean ignoreMissing) throws XIncludeException { String base = ""; if (!bases.isEmpty()) base = bases.peek(); @@ -212,7 +222,7 @@ public class JDOMXIncluder { assert !bases.contains(remote.toExternalForm()) : "Circular XInclude Reference to " + remote.toExternalForm(); final Element fallbackElement = element.getChild("fallback", element.getNamespace()); - List remoteParsed = parseRemote(bases, remote, fallbackElement); + List remoteParsed = parseRemote(bases, remote, fallbackElement, ignoreMissing); if (!remoteParsed.isEmpty()) { remoteParsed = extractNeededChildren(element, remoteParsed); } @@ -222,7 +232,7 @@ public class JDOMXIncluder { if (o instanceof Element) { Element e = (Element)o; - List nodes = resolve(e, bases); + List nodes = resolve(e, bases, ignoreMissing); remoteParsed.addAll(i, nodes); i += nodes.size(); remoteParsed.remove(i); @@ -299,14 +309,17 @@ public class JDOMXIncluder { } @NotNull - private static List parseRemote(final Stack bases, final URL remote, @Nullable Element fallbackElement) { + private static List parseRemote(Stack bases, + URL remote, + @Nullable Element fallbackElement, + boolean ignoreMissing) { try { Document doc = JDOMUtil.loadResourceDocument(remote); bases.push(remote.toExternalForm()); Element root = doc.getRootElement(); - final List list = resolve(root, bases); + List list = resolve(root, bases, ignoreMissing); bases.pop(); return list; @@ -319,17 +332,19 @@ public class JDOMXIncluder { // TODO[yole] return contents of fallback element (we don't have fallback elements with content ATM) return Collections.emptyList(); } + if (ignoreMissing) { + LOG.info(remote.toExternalForm() + " include ignored: " + e.getMessage()); + return Collections.emptyList(); + } throw new XIncludeException(e); } } - private static Element resolveNonXIncludeElement(Element original, Stack bases) throws XIncludeException { + private static Element resolveNonXIncludeElement(Element original, Stack bases, boolean ignoreMissing) throws XIncludeException { if (!bases.isEmpty()) bases.peek(); Element result = new Element(original.getName(), original.getNamespace()); - Iterator attributes = original.getAttributes().iterator(); - while (attributes.hasNext()) { - Attribute a = attributes.next(); + for (Attribute a : original.getAttributes()) { result.setAttribute(a.clone()); } @@ -337,10 +352,10 @@ public class JDOMXIncluder { if (o instanceof Element) { Element element = (Element)o; if (isIncludeElement(element)) { - result.addContent(resolveXIncludeElement(element, bases)); + result.addContent(resolveXIncludeElement(element, bases, ignoreMissing)); } else { - result.addContent(resolveNonXIncludeElement(element, bases)); + result.addContent(resolveNonXIncludeElement(element, bases, ignoreMissing)); } } else { diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/ChangesCacheFile.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/ChangesCacheFile.java index 4b3e336196ca..a10d03aad1b3 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/ChangesCacheFile.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/ChangesCacheFile.java @@ -34,6 +34,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.*; @@ -799,6 +800,7 @@ public class ChangesCacheFile { private final Project myProject; private final DiffProvider myDiffProvider; private boolean myAnyChanges; + private long myIndexStreamCachedLength; RefreshIncomingChangesOperation(ChangesCacheFile changesCacheFile, Project project, final DiffProvider diffProvider) { myChangesCacheFile = changesCacheFile; @@ -848,6 +850,7 @@ public class ChangesCacheFile { Map, VirtualFile> revisionDependentFiles = ContainerUtil.newHashMap(); Map, ProcessingResult> results = ContainerUtil.newHashMap(); + myIndexStreamCachedLength = myChangesCacheFile.myIndexStream.length(); // try to process changelists in a light way, remember which files need revisions for(IncomingChangeListData data: list) { debug("Checking incoming changelist " + data.changeList.getNumber()); @@ -864,11 +867,13 @@ public class ChangesCacheFile { } if (!revisionDependentFiles.isEmpty()) { + // lots of same files could be collected - make set of unique files + HashSet uniqueFiles = ContainerUtil.newHashSet(revisionDependentFiles.values()); // bulk-get all needed revisions at once Map revisions = myDiffProvider instanceof DiffProviderEx - ? ((DiffProviderEx)myDiffProvider).getCurrentRevisions(revisionDependentFiles.values()) - : DiffProviderEx.getCurrentRevisions(revisionDependentFiles.values(), myDiffProvider); - + ? ((DiffProviderEx)myDiffProvider).getCurrentRevisions(uniqueFiles) + : DiffProviderEx.getCurrentRevisions(uniqueFiles, myDiffProvider); + // perform processing requiring those revisions for(IncomingChangeListData data: list) { for (Change change : data.getChangesToProcess()) { @@ -1061,25 +1066,18 @@ public class ChangesCacheFile { private boolean wasSubsequentlyDeleted(final FilePath file, long indexOffset) { try { indexOffset += INDEX_ENTRY_SIZE; - while(indexOffset < myChangesCacheFile.myIndexStream.length()) { + while(indexOffset < myIndexStreamCachedLength) { IndexEntry e = getIndexEntryAtOffset(indexOffset); final CommittedChangeList changeList = getChangeListAtOffset(e.offset); for(Change c: changeList.getChanges()) { final ContentRevision beforeRevision = c.getBeforeRevision(); if ((beforeRevision != null) && (c.getAfterRevision() == null)) { - if (file.getIOFile().getAbsolutePath().equals(beforeRevision.getFile().getIOFile().getAbsolutePath()) || - file.isUnder(beforeRevision.getFile(), false)) { - debug("Found subsequent deletion for file " + file); + if (isFileDeleted(file, beforeRevision.getFile())) { return true; } } else if ((beforeRevision != null) && (c.getAfterRevision() != null)) { - boolean underBefore = file.isUnder(beforeRevision.getFile(), false); - if (underBefore && c.isIsReplaced() && (! file.equals(beforeRevision.getFile()))) { - debug("For " + file + "some of parents is replaced: " + beforeRevision.getFile()); - return true; - } else if (underBefore && (c.isMoved() || c.isRenamed())) { - debug("For " + file + "some of parents was renamed/moved: " + beforeRevision.getFile()); + if (isParentReplacedOrFileMoved(file, c, beforeRevision.getFile())) { return true; } } @@ -1093,6 +1091,33 @@ public class ChangesCacheFile { return false; } + private static boolean isParentReplacedOrFileMoved(@NotNull FilePath file, @NotNull Change change, @NotNull FilePath beforeFile) { + boolean isParentReplaced = change.isIsReplaced() && (!file.equals(beforeFile)); + boolean isMovedRenamed = change.isMoved() || change.isRenamed(); + // call FilePath.isUnder() only if change is either "parent replaced" or moved/renamed - as many calls to FilePath.isUnder() + // could take a lot of time + boolean underBefore = (isParentReplaced || isMovedRenamed) && file.isUnder(beforeFile, false); + + if (underBefore && isParentReplaced) { + debug("For " + file + "some of parents is replaced: " + beforeFile); + return true; + } + else if (underBefore && isMovedRenamed) { + debug("For " + file + "some of parents was renamed/moved: " + beforeFile); + return true; + } + return false; + } + + private static boolean isFileDeleted(@NotNull FilePath file, @NotNull FilePath beforeFile) { + if (file.getIOFile().getAbsolutePath().equals(beforeFile.getIOFile().getAbsolutePath()) || + file.isUnder(beforeFile, false)) { + debug("Found subsequent deletion for file " + file); + return true; + } + return false; + } + private IndexEntry getIndexEntryAtOffset(final long indexOffset) throws IOException { IndexEntry e = myIndexEntryCache.get(indexOffset); if (e == null) { diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogJoiner.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogJoiner.java index 43dd771f60a0..607246865851 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogJoiner.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogJoiner.java @@ -93,8 +93,9 @@ public class VcsLogJoiner { @NotNull Collection newRefs) { Set allUnresolvedLinkedHashes = new HashSet(newRefs); allUnresolvedLinkedHashes.removeAll(previousRefs); - // in this moment allUnresolvedLinkedHashes contains only NEW refs + // at this moment allUnresolvedLinkedHashes contains only NEW refs for (VcsCommit commit : firstBlock) { + allUnresolvedLinkedHashes.add(commit.getHash()); allUnresolvedLinkedHashes.addAll(commit.getParents()); } for (VcsCommit commit : firstBlock) { diff --git a/platform/vcs-log/impl/test/com/intellij/vcs/log/data/VcsLogJoinerTest.java b/platform/vcs-log/impl/test/com/intellij/vcs/log/data/VcsLogJoinerTest.java index 1618e491b21a..282d435324a3 100644 --- a/platform/vcs-log/impl/test/com/intellij/vcs/log/data/VcsLogJoinerTest.java +++ b/platform/vcs-log/impl/test/com/intellij/vcs/log/data/VcsLogJoinerTest.java @@ -54,6 +54,39 @@ public class VcsLogJoinerTest { ); } + @Test + public void oneNodeTest() { + runTest( + asList("3|-a1|-"), + asList("3|-a1|-"), + asList("a1"), + asList("a1"), + "a1" + ); + } + + @Test + public void oneNodeResetTest() { + runTest( + asList("3|-a1|-a2", "2|-a2|-"), + asList("2|-a2|-"), + asList("a2", "a1"), + asList("a2"), + "a2" + ); + } + + @Test + public void oneNodeReset2Test() { + runTest( + asList("3|-a1|-a2", "2|-a2|-"), + asList("2|-a2|-"), + asList("a1"), + asList("a2"), + "a2" + ); + } + @Test public void simpleRemoveCommitsTest() { runTest( diff --git a/plugins/gradle/tooling-extension/src/org/jetbrains/plugins/gradle/tooling/internal/testFilterInit.gradle b/plugins/gradle/tooling-extension/src/org/jetbrains/plugins/gradle/tooling/internal/testFilterInit.gradle index 68d0389ed9e6..cb56f3b2be59 100644 --- a/plugins/gradle/tooling-extension/src/org/jetbrains/plugins/gradle/tooling/internal/testFilterInit.gradle +++ b/plugins/gradle/tooling-extension/src/org/jetbrains/plugins/gradle/tooling/internal/testFilterInit.gradle @@ -144,7 +144,7 @@ def logConfigurationError(aTitle, aMessage, boolean openSettings) { } String escapeCdata(String s) { - return "", "]]]]>")+ "]]>"; + return "", "]]]]>")+ "]]>"; } def getStackTrace(Throwable t) { if(!t) return '' diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/api/CmdVersionClient.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/api/CmdVersionClient.java index 7c466943f39e..5fc4266400b0 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/api/CmdVersionClient.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/api/CmdVersionClient.java @@ -1,6 +1,7 @@ package org.jetbrains.idea.svn.api; import com.intellij.execution.ExecutionException; +import com.intellij.execution.configurations.EncodingEnvironmentUtil; import com.intellij.execution.configurations.GeneralCommandLine; import com.intellij.execution.process.CapturingProcessHandler; import com.intellij.execution.process.ProcessOutput; @@ -43,6 +44,8 @@ public class CmdVersionClient extends BaseSvnClient implements VersionClient { commandLine.addParameter(SvnCommandName.version.getName()); commandLine.addParameter("--quiet"); + EncodingEnvironmentUtil.fixDefaultEncodingIfMac(commandLine, null); + CapturingProcessHandler handler = new CapturingProcessHandler(commandLine.createProcess(), CharsetToolkit.getDefaultSystemCharset()); return handler.runProcess(30 * 1000); } diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnCommittedChangesProvider.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnCommittedChangesProvider.java index f8b0717502ac..556ef1e9ebbe 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnCommittedChangesProvider.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnCommittedChangesProvider.java @@ -19,12 +19,13 @@ package org.jetbrains.idea.svn.history; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.DefaultActionGroup; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Pair; -import com.intellij.openapi.util.ThrowableComputable; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.vcs.*; import com.intellij.openapi.vcs.changes.committed.DecoratorManager; import com.intellij.openapi.vcs.changes.committed.VcsCommittedListsZipper; @@ -39,19 +40,26 @@ import com.intellij.util.AsynchConsumer; import com.intellij.util.Consumer; import com.intellij.util.PairConsumer; import com.intellij.util.ThrowableConsumer; +import com.intellij.util.containers.ContainerUtil; import com.intellij.util.messages.MessageBusConnection; +import com.intellij.vcsUtil.VcsUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.idea.svn.*; +import org.jetbrains.idea.svn.SvnBundle; +import org.jetbrains.idea.svn.SvnUtil; +import org.jetbrains.idea.svn.SvnVcs; import org.jetbrains.idea.svn.actions.ConfigureBranchesAction; import org.jetbrains.idea.svn.commandLine.SvnBindException; import org.tmatesoft.svn.core.*; -import org.tmatesoft.svn.core.io.SVNRepository; -import org.tmatesoft.svn.core.wc.SVNLogClient; +import org.tmatesoft.svn.core.wc.ISVNStatusHandler; import org.tmatesoft.svn.core.wc.SVNRevision; +import org.tmatesoft.svn.core.wc.SVNStatus; +import org.tmatesoft.svn.core.wc.SVNStatusType; +import org.tmatesoft.svn.core.wc2.SvnTarget; import java.io.DataInput; import java.io.DataOutput; +import java.io.File; import java.io.IOException; import java.util.*; @@ -59,6 +67,9 @@ import java.util.*; * @author yole */ public class SvnCommittedChangesProvider implements CachingCommittedChangesProvider { + + private final static Logger LOG = Logger.getInstance(SvnCommittedChangesProvider.class); + private final Project myProject; private final SvnVcs myVcs; private final MessageBusConnection myConnection; @@ -106,7 +117,7 @@ public class SvnCommittedChangesProvider implements CachingCommittedChangesProvi @Nullable public RepositoryLocation getLocationFor(final FilePath root) { final String url = SvnUtil.getExactLocation(myVcs, root.getIOFile()); - return url == null ? null : new SvnRepositoryLocation(url); + return url == null ? null : new SvnRepositoryLocation(url, root); } public RepositoryLocation getLocationFor(final FilePath root, final String repositoryPath) { @@ -128,7 +139,7 @@ public class SvnCommittedChangesProvider implements CachingCommittedChangesProvi final String repositoryRoot = getRepositoryRoot(svnLocation); final ChangeBrowserSettings.Filter filter = settings.createFilter(); - getCommittedChangesImpl(settings, svnLocation, new String[]{""}, maxCount, new Consumer() { + getCommittedChangesImpl(settings, svnLocation, maxCount, new Consumer() { public void consume(final SVNLogEntry svnLogEntry) { final SvnChangeList cl = new SvnChangeList(myVcs, svnLocation, svnLogEntry, repositoryRoot); if (filter.accepts(cl)) { @@ -147,7 +158,7 @@ public class SvnCommittedChangesProvider implements CachingCommittedChangesProvi final ArrayList result = new ArrayList(); final String repositoryRoot = getRepositoryRoot(svnLocation); - getCommittedChangesImpl(settings, svnLocation, new String[]{""}, maxCount, new Consumer() { + getCommittedChangesImpl(settings, svnLocation, maxCount, new Consumer() { public void consume(final SVNLogEntry svnLogEntry) { result.add(new SvnChangeList(myVcs, svnLocation, svnLogEntry, repositoryRoot)); } @@ -174,7 +185,7 @@ public class SvnCommittedChangesProvider implements CachingCommittedChangesProvi } }); - getCommittedChangesImpl(settings, svnLocation, new String[]{""}, maxCount, new Consumer() { + getCommittedChangesImpl(settings, svnLocation, maxCount, new Consumer() { public void consume(final SVNLogEntry svnLogEntry) { try { mergeSourceTracker.consume(svnLogEntry); @@ -190,99 +201,46 @@ public class SvnCommittedChangesProvider implements CachingCommittedChangesProvi } private String getRepositoryRoot(@NotNull SvnRepositoryLocation svnLocation) throws VcsException { - // TODO: Implement this with command line - - final String repositoryRoot; - SVNRepository repository = null; + // TODO: Additionally SvnRepositoryLocation could possibly be refactored to always contain FilePath (or similar local item) + // TODO: So here we could get repository url without performing remote svn command + SVNURL rootUrl; try { - repository = myVcs.createRepository(svnLocation.getURL()); - repositoryRoot = repository.getRepositoryRoot(true).toString(); - } - catch (SVNException e) { - throw new VcsException(e); - } finally { - if (repository != null) { - repository.closeSession(); - } - } - return repositoryRoot; - } - - private void getCommittedChangesImpl(ChangeBrowserSettings settings, final SvnRepositoryLocation location, final String[] filterUrls, - final int maxCount, final Consumer resultConsumer, final boolean includeMergedRevisions, - final boolean filterOutByDate) throws VcsException { - setCollectingChangesProgress(location); - - try { - final String author = settings.getUserFilter(); - final Date dateFrom = settings.getDateAfterFilter(); - final Long changeFrom = settings.getChangeAfterFilter(); - final Date dateTo = settings.getDateBeforeFilter(); - final Long changeTo = settings.getChangeBeforeFilter(); - - final SVNRevision revisionBefore = createRevisionBefore(location, dateTo, changeTo); - final SVNRevision revisionAfter = createRevisionAfter(dateFrom, changeFrom); - - // TODO: Implement this with command line - SVNLogClient logger = myVcs.createLogClient(); - logger.doLog(location.toSvnUrl(), filterUrls, revisionBefore, revisionBefore, revisionAfter, settings.STOP_ON_COPY, true, - includeMergedRevisions, maxCount, null, createLogHandler(resultConsumer, filterOutByDate, author)); - } - catch (SVNException e) { - throw new VcsException(e); - } - } - - @NotNull - private static SVNRevision createRevisionAfter(@Nullable Date date, @Nullable Long change) throws VcsException { - return createRevision(date, change, new ThrowableComputable() { - @Override - public SVNRevision compute() throws VcsException { - return SVNRevision.create(1); - } - }); - } - - @NotNull - private SVNRevision createRevisionBefore(@NotNull final SvnRepositoryLocation location, @Nullable Date date, @Nullable Long change) - throws VcsException { - return createRevision(date, change, new ThrowableComputable() { - @Override - public SVNRevision compute() throws VcsException { - return getLatestRevision(location); - } - }); - } - - @NotNull - private SVNRevision getLatestRevision(@NotNull SvnRepositoryLocation location) throws VcsException { - // TODO: Implement this with command line - issue is that if url does not exist, SVNRepository will be created and asked correctly - // TODO: But "svn info -r HEAD" will fail - check if non-existing location could be passed or inteface should be expanded to use - // TODO: peg revisions. - SVNRepository repository = null; - long revision; - - try { - repository = myVcs.createRepository(location.getURL()); - revision = repository.getLatestRevision(); + rootUrl = SvnUtil.getRepositoryRoot(myVcs, svnLocation.toSvnUrl()); } catch (SVNException e) { throw new SvnBindException(e); } - finally { - if (repository != null) { - repository.closeSession(); - } + + if (rootUrl == null) { + throw new SvnBindException("Could not resolve repository root url for " + svnLocation); } - return SVNRevision.create(revision); + return rootUrl.toDecodedString(); + } + + private void getCommittedChangesImpl(ChangeBrowserSettings settings, final SvnRepositoryLocation location, + final int maxCount, final Consumer resultConsumer, final boolean includeMergedRevisions, + final boolean filterOutByDate) throws VcsException { + setCollectingChangesProgress(location); + + String author = settings.getUserFilter(); + Date dateFrom = settings.getDateAfterFilter(); + Long changeFrom = settings.getChangeAfterFilter(); + Date dateTo = settings.getDateBeforeFilter(); + Long changeTo = settings.getChangeBeforeFilter(); + + SVNRevision revisionBefore = createRevision(dateTo, changeTo, SVNRevision.HEAD); + SVNRevision revisionAfter = createRevision(dateFrom, changeFrom, SVNRevision.create(1)); + + SvnTarget target = SvnTarget.fromURL(location.toSvnUrl(), revisionBefore); + myVcs.getFactory(target).createHistoryClient().doLog(target, revisionBefore, revisionAfter, settings.STOP_ON_COPY, true, + includeMergedRevisions, maxCount, null, + createLogHandler(resultConsumer, filterOutByDate, author)); } @NotNull - private static SVNRevision createRevision(@Nullable Date date, - @Nullable Long change, - @NotNull ThrowableComputable defaultValue) + private static SVNRevision createRevision(@Nullable Date date, @Nullable Long change, @NotNull SVNRevision defaultValue) throws VcsException { final SVNRevision result; @@ -293,7 +251,7 @@ public class SvnCommittedChangesProvider implements CachingCommittedChangesProvi result = SVNRevision.create(change.longValue()); } else { - result = defaultValue.compute(); + result = defaultValue; } return result; @@ -398,12 +356,56 @@ public class SvnCommittedChangesProvider implements CachingCommittedChangesProvi return true; } - public Collection getIncomingFiles(final RepositoryLocation location) { - // TODO: Implement this using "svn status -u" or probably use this command in other part of cache logic - // TODO: How to map RepositoryLocation to concrete working copy ??? - // TODO: Seems that another parameter identifying local copy with for which we're detecting if repository location contains - // TODO: incoming files. - return null; + @Nullable + public Collection getIncomingFiles(final RepositoryLocation location) throws VcsException { + FilePath root = null; + + if (Registry.is("svn.use.incoming.optimization")) { + root = ((SvnRepositoryLocation)location).getRoot(); + + if (root == null) { + LOG.info("Working copy root is not provided for repository location " + location); + } + } + + return root != null ? getIncomingFiles(root) : null; + } + + @NotNull + private Collection getIncomingFiles(@NotNull FilePath root) throws SvnBindException { + // TODO: "svn diff -r BASE:HEAD --xml --summarize" command is also suitable here and outputs only necessary changed files, + // TODO: while "svn status -u" also outputs other files which could be not modified on server. But for svn 1.7 "--xml --summarize" + // TODO: could only be used with url targets - so we could not use "svn diff" here now for all cases (we could not use url with + // TODO: concrete revision as there could be mixed revision working copy). + + final Set result = ContainerUtil.newHashSet(); + File rootFile = root.getIOFile(); + + try { + myVcs.getFactory(rootFile).createStatusClient() + .doStatus(rootFile, SVNRevision.UNDEFINED, SVNDepth.INFINITY, true, false, false, false, new ISVNStatusHandler() { + @Override + public void handleStatus(SVNStatus status) throws SVNException { + File file = status.getFile(); + boolean changedOnServer = isNotNone(status.getRemoteContentsStatus()) || + isNotNone(status.getRemoteNodeStatus()) || + isNotNone(status.getRemotePropertiesStatus()); + + if (file != null && changedOnServer) { + result.add(VcsUtil.getFilePath(file, file.isDirectory())); + } + } + }, null); + } + catch (SVNException e) { + throw new SvnBindException(e); + } + + return result; + } + + private static boolean isNotNone(@Nullable SVNStatusType status) { + return status != null && !SVNStatusType.STATUS_NONE.equals(status); } public boolean refreshCacheByNumber() { diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnRepositoryLocation.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnRepositoryLocation.java index 2e497ca12bda..d46378eeda45 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnRepositoryLocation.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnRepositoryLocation.java @@ -33,10 +33,17 @@ import java.io.File; * @author yole */ public class SvnRepositoryLocation implements RepositoryLocation { - private final String myURL; - public SvnRepositoryLocation(final String URL) { - myURL = URL; + private final String myURL; + @Nullable private final FilePath myRoot; + + public SvnRepositoryLocation(final String url) { + this(url, null); + } + + public SvnRepositoryLocation(String url, @Nullable FilePath root) { + myURL = url; + myRoot = root; } public String toString() { @@ -55,6 +62,11 @@ public class SvnRepositoryLocation implements RepositoryLocation { return myURL; } + @Nullable + public FilePath getRoot() { + return myRoot; + } + @Override public void onBeforeBatch() throws VcsException { } diff --git a/xml/impl/src/com/intellij/psi/filters/getters/HtmlAttributeValueGetter.java b/xml/impl/src/com/intellij/psi/filters/getters/HtmlAttributeValueGetter.java index 637e4cb69731..ce0e500d7d96 100644 --- a/xml/impl/src/com/intellij/psi/filters/getters/HtmlAttributeValueGetter.java +++ b/xml/impl/src/com/intellij/psi/filters/getters/HtmlAttributeValueGetter.java @@ -67,7 +67,7 @@ public class HtmlAttributeValueGetter extends XmlAttributeValueGetter { "section", "subsection", "appendix", "help", "bookmark", "script", "import"}; } else if ("media".equals(name)) { - return new String[]{"screen", "tty", "tv", "projection", "handheld", "print", "all", "aural", "braille"}; + return new String[]{ "all", "braille", "embossed", "handheld", "print", "projection", "screen", "speech", "tty", "tv" }; } else if ("language".equals(name)) { return new String[]{"JavaScript", "VBScript", "JScript", "JavaScript1.2", "JavaScript1.3", "JavaScript1.4", "JavaScript1.5"}; @@ -76,16 +76,14 @@ public class HtmlAttributeValueGetter extends XmlAttributeValueGetter { return new String[]{"text/css", "text/html", "text/plain", "text/xml"}; } else if ("http-equiv".equals(name) && "meta".equals(tagName)) { - return new String[]{"Accept", "Accept-Charset", "Accept-Encoding", "Accept-Language", "Accept-Ranges", "Age", "Allow", - "Authorization", "Cache-Control", "Connection", "Content-Encoding", "Content-Language", "Content-Length", "Content-Location", - "Content-MD5", "Content-Range", "Content-Type", "Date", "ETag", "Expect", "Expires", "From", "Host", "If-Match", - "If-Modified-Since", "If-None-Match", "If-Range", "If-Unmodified-Since", "Last-Modified", "Location", "Max-Forwards", "Pragma", - "Proxy-Authenticate", "Proxy-Authorization", "Range", "Referer", "Refresh", "Retry-After", "Server", "TE", "Trailer", "Transfer-Encoding", - "Upgrade", "User-Agent", "Vary", "Via", "Warning", "WWW-Authenticate"}; + return HtmlUtil.RFC2616_HEADERS; } else if("content".equals(name) && "meta".equals(tagName) && getAttribute(tag, "name") == null) { return HtmlUtil.CONTENT_TYPES; } + else if ("accept".equals(name) && "input".equals(tagName)) { + return HtmlUtil.CONTENT_TYPES; + } else if("accept-charset".equals(name) || "charset".equals(name)) { Charset[] charSets = CharsetToolkit.getAvailableCharsets(); String[] names = new String[charSets.length]; diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java b/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java index 9656b34ba831..bbfce2faa7c2 100644 --- a/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java @@ -49,6 +49,7 @@ import com.intellij.xml.XmlElementDescriptor; import com.intellij.xml.XmlNSDescriptor; import com.intellij.xml.impl.schema.XmlAttributeDescriptorImpl; import com.intellij.xml.impl.schema.XmlElementDescriptorImpl; +import com.intellij.xml.util.documentation.MimeTypeDictionary; import com.intellij.xml.util.documentation.HtmlDescriptorsTable; import gnu.trove.THashMap; import gnu.trove.THashSet; @@ -75,35 +76,18 @@ public class HtmlUtil { public static final String SCRIPT_TAG_NAME = "script"; - public static final String[] CONTENT_TYPES = - {"application/activemessage", "application/andrew-inset", "application/applefile", "application/atomicmail", "application/dca-rft", - "application/dec-dx", "application/mac-binhex40" - , "application/mac-compactpro", "application/macwriteii", "application/msword", "application/news-message-id", - "application/news-transmission", "application/octet-stream" - , "application/oda", "application/pdf", "application/postscript", "application/powerpoint", "application/remote-printing", - "application/rtf" - , "application/slate", "application/wita", "application/wordperfect5.1", "application/x-bcpio", "application/x-cdlink", - "application/x-compress" - , "application/x-cpio", "application/x-csh", "application/x-director", "application/x-dvi", "application/x-gtar", "application/x-gzip" - , "application/x-hdf", "application/x-httpd-cgi", "application/x-koan", "application/x-latex", "application/x-mif", - "application/x-netcdf" - , "application/x-sh", "application/x-shar", "application/x-stuffit", "application/x-sv4cpio", "application/x-sv4crc", - "application/x-tar" - , "application/x-tcl", "application/x-tex", "application/x-texinfo", "application/x-troff", "application/x-troff-man", - "application/x-troff-me" - , "application/x-troff-ms", "application/x-ustar", "application/x-wais-source", "application/zip", "audio/basic", "audio/mpeg" - , "audio/x-aiff", "audio/x-pn-realaudio", "audio/x-pn-realaudio-plugin", "audio/x-realaudio", "audio/x-wav", "chemical/x-pdb" - , "image/gif", "image/ief", "image/jpeg", "image/png", "image/tiff", "image/x-cmu-raster" - , "image/x-portable-anymap", "image/x-portable-bitmap", "image/x-portable-graymap", "image/x-portable-pixmap", "image/x-rgb", - "image/x-xbitmap" - , "image/x-xpixmap", "image/x-xwindowdump", "message/external-body", "message/news", "message/partial", "message/rfc822" - , "multipart/alternative", "multipart/appledouble", "multipart/digest", "multipart/mixed", "multipart/parallel", "text/html" - , "text/plain", "text/richtext", "text/tab-separated-values", "text/x-setext", "text/x-sgml", "video/mpeg" - , "video/quicktime", "video/x-msvideo", "video/x-sgi-movie", "x-conference/x-cooltalk", "x-world/x-vrml"}; + public static final String[] CONTENT_TYPES = ArrayUtil.toStringArray(MimeTypeDictionary.getContentTypes()); @NonNls public static final String MATH_ML_NAMESPACE = "http://www.w3.org/1998/Math/MathML"; @NonNls public static final String SVG_NAMESPACE = "http://www.w3.org/2000/svg"; + public static final String[] RFC2616_HEADERS = new String[]{"Accept", "Accept-Charset", "Accept-Encoding", "Accept-Language", + "Accept-Ranges", "Age", "Allow", "Authorization", "Cache-Control", "Connection", "Content-Encoding", "Content-Language", + "Content-Length", "Content-Location", "Content-MD5", "Content-Range", "Content-Type", "Date", "ETag", "Expect", "Expires", "From", + "Host", "If-Match", "If-Modified-Since", "If-None-Match", "If-Range", "If-Unmodified-Since", "Last-Modified", "Location", + "Max-Forwards", "Pragma", "Proxy-Authenticate", "Proxy-Authorization", "Range", "Referer", "Refresh", "Retry-After", "Server", "TE", + "Trailer", "Transfer-Encoding", "Upgrade", "User-Agent", "Vary", "Via", "Warning", "WWW-Authenticate"}; + private HtmlUtil() { } diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/MimeTypeDictionary.java b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/MimeTypeDictionary.java new file mode 100644 index 000000000000..f93cff8a4b86 --- /dev/null +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/MimeTypeDictionary.java @@ -0,0 +1,75 @@ +/* + * Copyright 2000-2014 JetBrains s.r.o. + * + * Licensed 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 com.intellij.xml.util.documentation; + +import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.util.text.StringUtil; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Collection; +import java.util.Set; +import java.util.TreeSet; + +/** + * @author Dennis.Ushakov + */ +public class MimeTypeDictionary { + private static Set ourContentTypes; + + public static Collection getContentTypes() { + if (ourContentTypes == null) { + ourContentTypes = loadContentTypes(); + } + return ourContentTypes; + } + + private static Set loadContentTypes() { + final TreeSet result = new TreeSet(); + result.add("*/*"); + // IANA Media Types: http://www.iana.org/assignments/media-types/media-types.xhtml + readMediaTypes(result, "application"); + readMediaTypes(result, "audio"); + readMediaTypes(result, "image"); + readMediaTypes(result, "message"); + readMediaTypes(result, "model"); + readMediaTypes(result, "multipart"); + readMediaTypes(result, "text"); + readMediaTypes(result, "video"); + return result; + } + + private static void readMediaTypes(TreeSet result, final String category) { + final InputStream stream = MimeTypeDictionary.class.getResourceAsStream("mimeTypes/" + category + ".csv"); + String csv = ""; + try { + csv = stream != null ? FileUtil.loadTextAndClose(stream) : ""; + } + catch (IOException e) { + Logger.getInstance(MimeTypeDictionary.class).error(e); + } + final String[] lines = StringUtil.splitByLines(csv); + for (String line : lines) { + if (line == lines[0]) continue; + + final String[] split = line.split(","); + if (split.length > 1) { + result.add(!split[1].isEmpty() ? split[1] : category + "/" + split[0]); + } + } + } +} diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/application.csv b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/application.csv new file mode 100644 index 000000000000..03f6a36ce4ad --- /dev/null +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/application.csv @@ -0,0 +1,1062 @@ +Name,Template,Reference +1d-interleaved-parityfec,,[RFC6015] +3gpp-ims+xml,application/3gpp-ims+xml,[John_M_Meredith] +activemessage,application/activemessage,[Ehud_Shapiro] +activemessage,application/activemessage,[Ehud_Shapiro] +alto-costmap+json,application/alto-costmap+json,[RFC-ietf-alto-protocol-27] +alto-costmapfilter+json,application/alto-costmapfilter+json,[RFC-ietf-alto-protocol-27] +alto-directory+json,application/alto-directory+json,[RFC-ietf-alto-protocol-27] +alto-endpointprop+json,application/alto-endpointprop+json,[RFC-ietf-alto-protocol-27] +alto-endpointpropparams+json,application/alto-endpointpropparams+json,[RFC-ietf-alto-protocol-27] +alto-endpointcost+json,application/alto-endpointcost+json,[RFC-ietf-alto-protocol-27] +alto-endpointcostparams+json,application/alto-endpointcostparams+json,[RFC-ietf-alto-protocol-27] +alto-error+json,application/alto-error+json,[RFC-ietf-alto-protocol-27] +alto-networkmapfilter+json,application/alto-networkmapfilter+json,[RFC-ietf-alto-protocol-27] +alto-networkmap+json,application/alto-networkmap+json,[RFC-ietf-alto-protocol-27] +andrew-inset,application/andrew-inset,[Nathaniel_Borenstein] +applefile,application/applefile,[Patrik_Faltstrom] +atom+xml,,[RFC4287][RFC5023] +atomdeleted+xml,,[RFC6721] +atomicmail,application/atomicmail,[Nathaniel_Borenstein] +atomcat+xml,,[RFC5023] +atomsvc+xml,,[RFC5023] +auth-policy+xml,,[RFC4745] +bacnet-xdd+zip,application/bacnet-xdd+zip,[ASHRAE][Dave_Robin] +batch-SMTP,,[RFC2442] +beep+xml,,[RFC3080] +calendar+xml,,[RFC6321] +call-completion,application/call-completion,[RFC6910] +cals-1840,,[RFC1895] +cbor,application/cbor,[RFC7049] +ccmp+xml,,[RFC6503] +ccxml+xml,,[RFC4267] +cdmi-capability,,[RFC6208] +cdmi-container,,[RFC6208] +cdmi-domain,,[RFC6208] +cdmi-object,,[RFC6208] +cdmi-queue,,[RFC6208] +cea-2018+xml,application/cea-2018+xml,[Gottfried_Zimmermann] +cellml+xml,,[RFC4708] +cfw,,[RFC6230] +cms,application/cms,[RFC-turner-application-cms-media-type-08] +cnrp+xml,,[RFC3367] +commonground,application/commonground,[David_Glazer] +conference-info+xml,,[RFC4575] +cpl+xml,,[RFC3880] +csrattrs,application/csrattrs,[RFC7030] +csta+xml,application/csta+xml,[Ecma_International_Helpdesk] +CSTAdata+xml,application/CSTAdata+xml,[Ecma_International_Helpdesk] +cybercash,application/cybercash,[Donald_E._Eastlake_3rd] +dash+xml,application/dash+xml,[Thomas_Stockhammer][ISO-IEC_JTC1] +dashdelta,application/dashdelta,[David_Furbeck] +davmount+xml,,[RFC4709] +dca-rft,application/dca-rft,[Larry_Campbell] +dec-dx,application/dec-dx,[Larry_Campbell] +dialog-info+xml,,[RFC4235] +dicom,,[RFC3240] +dns,,[RFC4027] +dskpp+xml,,[RFC6063] +dssc+der,,[RFC5698] +dssc+xml,,[RFC5698] +dvcs,,[RFC3029] +ecmascript,,[RFC4329] +EDI-Consent,,[RFC1767] +EDIFACT,,[RFC1767] +EDI-X12,,[RFC1767] +emma+xml,,[W3C][http://www.w3.org/TR/2007/CR-emma-20071211/#media-type-registration][ISO-IEC JTC1] +emotionml+xml,application/emotionml+xml,[W3C][Kazuyuki_Ashimura] +encaprtp,application/encaprtp,[RFC6849] +epp+xml,,[RFC5730] +eshop,application/eshop,[Steve_Katz] +example,,[RFC4735] +exi,,[W3C][http://www.w3.org/TR/2009/CR-exi-20091208/#mediaTypeRegistration] +fastinfoset,application/fastinfoset,[ITU-T_ASN.1_Rapporteur] +fastsoap,application/fastsoap,[ITU-T_ASN.1_Rapporteur] +fdt+xml,,[RFC6726] +fits,,[RFC4047] +font-sfnt,application/font-sfnt,[Levantovsky][ISO-IEC JTC1] +font-tdpfr,,[RFC3073] +font-woff,application/font-woff,[W3C] +framework-attributes+xml,,[RFC6230] +gzip,,[RFC6713] +H224,,[RFC4573] +held+xml,,[RFC5985] +http,application/http,[RFC-ietf-httpbis-p1-messaging-26] +hyperstudio,application/hyperstudio,[Michael_Domino] +ibe-key-request+xml,,[RFC5408] +ibe-pkg-reply+xml,,[RFC5408] +ibe-pp-data,,[RFC5408] +iges,application/iges,[Curtis_Parks] +im-iscomposing+xml,,[RFC3994] +index,,[RFC2652] +index.cmd,,[RFC2652] +index.obj,,[RFC2652] +index.response,,[RFC2652] +index.vnd,,[RFC2652] +inkml+xml,application/inkml+xml,[Kazuyuki_Ashimura] +iotp,,[RFC2935] +ipfix,,[RFC5655] +ipp,,[RFC2910] +isup,,[RFC3204] +its+xml,application/its+xml,[W3C][ITS-IG-W3C] +javascript,,[RFC4329] +jrd+json,application/jrd+json,[RFC7033] +json,application/json,[RFC7158] +json-patch+json,application/json-patch+json,[RFC6902] +kpml-request+xml,,[RFC4730] +kpml-response+xml,,[RFC4730] +ld+json,application/ld+json,[W3C][Ivan_Herman] +load-control+xml,application/load-control+xml,[RFC-ietf-soc-load-control-event-package-13] +link-format,,[RFC6690] +lost+xml,,[RFC5222] +lostsync+xml,,[RFC6739] +mac-binhex40,application/mac-binhex40,[Patrik_Faltstrom] +macwriteii,application/macwriteii,[Paul_Lindner] +mads+xml,,[RFC6207] +marc,,[RFC2220] +marcxml+xml,,[RFC6207] +mathematica,application/mathematica,[Wolfram] +mathml-content+xml,,[W3C][http://www.w3.org/TR/MathML3/appendixb.html] +mathml-presentation+xml,,[W3C][http://www.w3.org/TR/MathML3/appendixb.html] +mathml+xml,,[W3C][http://www.w3.org/TR/MathML3/appendixb.html] +mbms-associated-procedure-description+xml,application/mbms-associated-procedure-description+xml,[ThreeGPP] +mbms-deregister+xml,application/mbms-deregister+xml,[ThreeGPP] +mbms-envelope+xml,application/mbms-envelope+xml,[ThreeGPP] +mbms-msk-response+xml,application/mbms-msk-response+xml,[ThreeGPP] +mbms-msk+xml,application/mbms-msk+xml,[ThreeGPP] +mbms-protection-description+xml,application/mbms-protection-description+xml,[ThreeGPP] +mbms-reception-report+xml,application/mbms-reception-report+xml,[ThreeGPP] +mbms-register-response+xml,application/mbms-register-response+xml,[ThreeGPP] +mbms-register+xml,application/mbms-register+xml,[ThreeGPP] +mbms-schedule+xml,application/mbms-schedule+xml,[ThreeGPP][Eric_Turcotte] +mbms-user-service-description+xml,application/mbms-user-service-description+xml,[ThreeGPP] +mbox,,[RFC4155] +media_control+xml,,[RFC5168] +media-policy-dataset+xml,,[RFC6796] +mediaservercontrol+xml,,[RFC5022] +metalink4+xml,,[RFC5854] +mets+xml,,[RFC6207] +mikey,,[RFC3830] +mods+xml,,[RFC6207] +moss-keys,,[RFC1848] +moss-signature,,[RFC1848] +mosskey-data,,[RFC1848] +mosskey-request,,[RFC1848] +mp21,application/mp21,[RFC6381][David_Singer] +mp4,,[RFC4337][RFC6381] +mpeg4-generic,,[RFC3640] +mpeg4-iod,,[RFC4337] +mpeg4-iod-xmt,,[RFC4337] +mrb-consumer+xml,application/mrb-consumer+xml,[RFC6917] +mrb-publish+xml,application/mrb-publish+xml,[RFC6917] +msc-ivr+xml,,[RFC6231] +msc-mixer+xml,,[RFC6505] +msword,application/msword,[Paul_Lindner] +mxf,,[RFC4539] +nasdata,,[RFC4707] +news-checkgroups,,[RFC5537] +news-groupinfo,,[RFC5537] +news-transmission,,[RFC5537] +nlsml+xml,,[RFC6787] +nss,application/nss,[Michael_Hammer] +ocsp-request,,[RFC6960] +ocsp-response,,[RFC6960] +octet-stream,,[RFC2045][RFC2046] +oda,,[RFC2045][RFC2046] +ODX,application/ODX,[ASAM][Thomas_Thomsen] +oebps-package+xml,,[RFC4839] +ogg,,[RFC5334] +oxps,application/oxps,[Ecma_International_Helpdesk] +p2p-overlay+xml,application/p2p-overlay+xml,[RFC6940] +parityfec,,[RFC5109] +patch-ops-error+xml,,[RFC5261] +pdf,,[RFC3778] +PDX,application/PDX,[ASAM][Thomas_Thomsen] +pgp-encrypted,,[RFC3156] +pgp-keys,,[RFC3156] +pgp-signature,,[RFC3156] +pidf+xml,application/pidfxml,[RFC3863] +pidf-diff+xml,,[RFC5262] +pkcs10,,[RFC5967] +pkcs7-mime,,[RFC5751][RFC7114] +pkcs7-signature,,[RFC5751] +pkcs8,,[RFC5958] +pkix-attr-cert,,[RFC5877] +pkix-cert,,[RFC2585] +pkixcmp,,[RFC2510] +pkix-crl,,[RFC2585] +pkix-pkipath,,[RFC6066] +pls+xml,,[RFC4267] +poc-settings+xml,,[RFC4354] +postscript,,[RFC2045][RFC2046] +provenance+xml,application/provenance+xml,[W3C][Ivan_Herman] +prs.alvestrand.titrax-sheet,application/prs.alvestrand.titrax-sheet,[Harald_T._Alvestrand] +prs.cww,application/prs.cww,[Khemchart_Rungchavalnont] +prs.hpub+zip,application/prs.hpub+zip,[Giulio_Zambon] +prs.nprend,application/prs.nprend,[Jay_Doggett] +prs.plucker,application/prs.plucker,[Bill_Janssen] +prs.rdf-xml-crypt,application/prs.rdf-xml-crypt,[Toby_Inkster] +prs.xsf+xml,application/prs.xsf+xml,[Maik_Stührenberg] +pskc+xml,,[RFC6030] +rdf+xml,,[RFC3870] +qsig,,[RFC3204] +raptorfec,,[RFC6682] +reginfo+xml,,[RFC3680] +relax-ng-compact-syntax,application/relax-ng-compact-syntax,[http://www.jtc1sc34.org/repository/0661.pdf] +remote-printing,application/remote-printing,[RFC1486][Marshall_Rose] +reputon+json,application/reputon+json,[RFC7071] +resource-lists-diff+xml,,[RFC5362] +resource-lists+xml,,[RFC4826] +riscos,application/riscos,[Nick_Smith] +rlmi+xml,,[RFC4662] +rls-services+xml,,[RFC4826] +rpki-ghostbusters,,[RFC6493] +rpki-manifest,,[RFC6481] +rpki-roa,,[RFC6481] +rpki-updown,,[RFC6492] +rtf,application/rtf,[Paul_Lindner] +rtploopback,application/rtploopback,[RFC6849] +rtx,,[RFC4588] +samlassertion+xml,application/samlassertion+xml,[OASIS_Security_Services_Technical_Committee_SSTC] +samlmetadata+xml,application/samlmetadata+xml,[OASIS_Security_Services_Technical_Committee_SSTC] +sbml+xml,,[RFC3823] +scvp-cv-request,,[RFC5055] +scvp-cv-response,,[RFC5055] +scvp-vp-request,,[RFC5055] +scvp-vp-response,,[RFC5055] +sdp,,[RFC4566] +sep-exi,application/sep-exi,[Robby_Simpson][ZigBee] +sep+xml,application/sep+xml,[Robby_Simpson][ZigBee] +session-info,application/session-info,[ThreeGPP][Frederic_Firmin] +set-payment,application/set-payment,[Brian_Korver] +set-payment-initiation,application/set-payment-initiation,[Brian_Korver] +set-registration,application/set-registration,[Brian_Korver] +set-registration-initiation,application/set-registration-initiation,[Brian_Korver] +sgml,,[RFC1874] +sgml-open-catalog,application/sgml-open-catalog,[Paul_Grosso] +shf+xml,,[RFC4194] +sieve,,[RFC5228] +simple-filter+xml,,[RFC4661] +simple-message-summary,,[RFC3842] +simpleSymbolContainer,application/simpleSymbolContainer,[ThreeGPP] +slate,application/slate,[Terry_Crowley] +smil - OBSOLETE,,[RFC4536] +smil+xml,,[RFC4536] +smpte336m,,[RFC6597] +soap+fastinfoset,application/soap+fastinfoset,[ITU-T_ASN.1_Rapporteur] +soap+xml,,[RFC3902] +sparql-query,,[W3C][http://www.w3.org/TR/2007/CR-rdf-sparql-query-20070614/#mediaType] +sparql-results+xml,,[W3C][http://www.w3.org/TR/2007/CR-rdf-sparql-XMLres-20070925/#mime] +spirits-event+xml,,[RFC3910] +sql,application/sql,[RFC6922] +srgs,,[RFC4267] +srgs+xml,,[RFC4267] +sru+xml,,[RFC6207] +ssml+xml,,[RFC4267] +tamp-apex-update,,[RFC5934] +tamp-apex-update-confirm,,[RFC5934] +tamp-community-update,,[RFC5934] +tamp-community-update-confirm,,[RFC5934] +tamp-error,,[RFC5934] +tamp-sequence-adjust,,[RFC5934] +tamp-sequence-adjust-confirm,,[RFC5934] +tamp-status-query,,[RFC5934] +tamp-status-response,,[RFC5934] +tamp-update,,[RFC5934] +tamp-update-confirm,,[RFC5934] +tei+xml,,[RFC6129] +thraud+xml,,[RFC5941] +timestamp-query,,[RFC3161] +timestamp-reply,,[RFC3161] +timestamped-data,,[RFC5955] +ttml+xml,application/ttml+xml,[W3C][W3C_Timed_Text_Working_Group] +tve-trigger,application/tve-trigger,[Linda_Welsh] +ulpfec,,[RFC5109] +urc-grpsheet+xml,application/urc-grpsheet+xml,[Gottfried_Zimmermann][ISO-IEC JTC1] +urc-ressheet+xml,application/urc-ressheet+xml,[Gottfried_Zimmermann][ISO-IEC JTC1] +urc-targetdesc+xml,application/urc-targetdesc+xml,[Gottfried_Zimmermann][ISO-IEC JTC1] +urc-uisocketdesc+xml,application/urc-uisocketdesc+xml,[Gottfried_Zimmermann] +vcard+json,application/vcard+json,[RFC7095] +vcard+xml,,[RFC6351] +vemmi,,[RFC2122] +vnd.3gpp.bsf+xml,application/vnd.3gpp.bsf+xml,[John_M_Meredith] +vnd.3gpp.pic-bw-large,application/vnd.3gpp.pic-bw-large,[John_M_Meredith] +vnd.3gpp.pic-bw-small,application/vnd.3gpp.pic-bw-small,[John_M_Meredith] +vnd.3gpp.pic-bw-var,application/vnd.3gpp.pic-bw-var,[John_M_Meredith] +vnd.3gpp.sms,application/vnd.3gpp.sms,[John_M_Meredith] +vnd.3gpp2.bcmcsinfo+xml,application/vnd.3gpp2.bcmcsinfo+xml,[Andy_Dryden] +vnd.3gpp2.sms,application/vnd.3gpp2.sms,[AC_Mahendran] +vnd.3gpp2.tcap,application/vnd.3gpp2.tcap,[AC_Mahendran] +vnd.3M.Post-it-Notes,application/vnd.3M.Post-it-Notes,[Michael_OBrien] +vnd.accpac.simply.aso,application/vnd.accpac.simply.aso,[Steve_Leow] +vnd.accpac.simply.imp,application/vnd.accpac.simply.imp,[Steve_Leow] +vnd.acucobol,application/vnd-acucobol,[Dovid_Lubin] +vnd.acucorp,application/vnd.acucorp,[Dovid_Lubin] +vnd.adobe.flash.movie,application/vnd.adobe.flash-movie,[Henrik_Andersson] +vnd.adobe.formscentral.fcdt,application/vnd.adobe.formscentral.fcdt,[Chris_Solc] +vnd.adobe.fxp,application/vnd.adobe.fxp,[Robert_Brambley][Steven_Heintz] +vnd.adobe.partial-upload,application/vnd.adobe.partial-upload,[Tapani_Otala] +vnd.adobe.xdp+xml,application/vnd.adobe.xdp+xml,[John_Brinkman] +vnd.adobe.xfdf,application/vnd.adobe.xfdf,[Roberto_Perelman] +vnd.aether.imp,application/vnd.aether.imp,[Jay_Moskowitz] +vnd.ah-barcode,application/vnd.ah-barcode,[Katsuhiko_Ichinose] +vnd.ahead.space,application/vnd.ahead.space,[Tor_Kristensen] +vnd.airzip.filesecure.azf,application/vnd.airzip.filesecure.azf,[Daniel_Mould][Gary_Clueit] +vnd.airzip.filesecure.azs,application/vnd.airzip.filesecure.azs,[Daniel_Mould][Gary_Clueit] +vnd.americandynamics.acc,application/vnd.americandynamics.acc,[Gary_Sands] +vnd.amiga.ami,application/vnd.amiga.ami,[Kevin_Blumberg] +vnd.amundsen.maze+xml,application/vnd.amundsen.maze+xml,[Mike_Amundsen] +vnd.anser-web-certificate-issue-initiation,application/vnd.anser-web-certificate-issue-initiation,[Hiroyoshi_Mori] +vnd.antix.game-component,application/vnd.antix.game-component,[Daniel_Shelton] +vnd.api+json,application/vnd.api+json,[Steve_Klabnik] +vnd.apple.mpegurl,application/vnd.apple.mpegurl,[David_Singer][Roger_Pantos] +vnd.apple.installer+xml,application/vnd.apple.installer+xml,[Peter_Bierman] +vnd.arastra.swi - OBSOLETE,application/vnd.arastra.swi,[Bill_Fenner] +vnd.aristanetworks.swi,application/vnd.aristanetworks.swi,[Bill_Fenner] +vnd.astraea-software.iota,application/vnd.astraea-software.iota,[Christopher_Snazell] +vnd.audiograph,application/vnd.audiograph,[Horia_Cristian_Slusanschi] +vnd.autopackage,application/vnd.autopackage,[Mike_Hearn] +vnd.avistar+xml,application/vnd.avistar+xml,[Vladimir_Vysotsky] +vnd.balsamiq.bmml+xml,application/vnd.balsamiq.bmml+xml,[Giacomo_Guilizzoni] +vnd.bekitzur-stech+json,application/vnd.bekitzur-stech+json,[Jegulsky] +vnd.blueice.multipass,application/vnd.blueice.multipass,[Thomas_Holmstrom] +vnd.bluetooth.ep.oob,application/vnd.bluetooth.ep.oob,[Mike_Foley] +vnd.bluetooth.le.oob,application/vnd.bluetooth.le.oob,[Mark_Powell] +vnd.bmi,application/vnd.bmi,[Tadashi_Gotoh] +vnd.businessobjects,application/vnd.businessobjects,[Philippe_Imoucha] +vnd.cab-jscript,application/vnd.cab-jscript,[Joerg_Falkenberg] +vnd.canon-cpdl,application/vnd.canon-cpdl,[Shin_Muto] +vnd.canon-lips,application/vnd.canon-lips,[Shin_Muto] +vnd.cendio.thinlinc.clientconf,application/vnd.cendio.thinlinc.clientconf,[Peter_Astrand] +vnd.century-systems.tcp_stream,application/vnd.century-systems.tcp_stream,[Shuji_Fujii] +vnd.chemdraw+xml,application/vnd.chemdraw+xml,[Glenn_Howes] +vnd.chipnuts.karaoke-mmd,application/vnd.chipnuts.karaoke-mmd,[Chunyun_Xiong] +vnd.cinderella,application/vnd.cinderella,[Ulrich_Kortenkamp] +vnd.cirpack.isdn-ext,application/vnd.cirpack.isdn-ext,[Pascal_Mayeux] +vnd.claymore,application/vnd.claymore,[Ray_Simpson] +vnd.cloanto.rp9,application/vnd.cloanto.rp9,[Mike_Labatt] +vnd.clonk.c4group,application/vnd.clonk.c4group,[Guenther_Brammer] +vnd.cluetrust.cartomobile-config,application/vnd.cluetrust.cartomobile-config,[Gaige_Paulsen] +vnd.cluetrust.cartomobile-config-pkg,application/vnd.cluetrust.cartomobile-config-pkg,[Gaige_Paulsen] +vnd.collection.doc+json,application/vnd.collection.doc+json,[Irakli_Nadareishvili] +vnd.collection+json,application/vnd.collection+json,[Mike_Amundsen] +vnd.collection.next+json,application/vnd.collection.next+json,[Ioseb_Dzmanashvili] +vnd.commerce-battelle,application/vnd.commerce-battelle,[David_Applebaum] +vnd.commonspace,application/vnd.commonspace,[Ravinder_Chandhok] +vnd.cosmocaller,application/vnd.cosmocaller,[Steve_Dellutri] +vnd.contact.cmsg,application/vnd.contact.cmsg,[Frank_Patz] +vnd.crick.clicker,application/vnd.crick.clicker,[Andrew_Burt] +vnd.crick.clicker.keyboard,application/vnd.crick.clicker.keyboard,[Andrew_Burt] +vnd.crick.clicker.palette,application/vnd.crick.clicker.palette,[Andrew_Burt] +vnd.crick.clicker.template,application/vnd.crick.clicker.template,[Andrew_Burt] +vnd.crick.clicker.wordbank,application/vnd.crick.clicker.wordbank,[Andrew_Burt] +vnd.criticaltools.wbs+xml,application/vnd.criticaltools.wbs+xml,[Jim_Spiller] +vnd.ctc-posml,application/vnd.ctc-posml,[Bayard_Kohlhepp] +vnd.ctct.ws+xml,application/vnd.ctct.ws+xml,[Jim_Ancona] +vnd.cups-pdf,application/vnd.cups-pdf,[Michael_Sweet] +vnd.cups-postscript,application/vnd.cups-postscript,[Michael_Sweet] +vnd.cups-ppd,application/vnd.cups-ppd,[Michael_Sweet] +vnd.cups-raster,application/vnd.cups-raster,[Michael_Sweet] +vnd.cups-raw,application/vnd.cups-raw,[Michael_Sweet] +vnd.curl,application/vnd-curl,[Robert_Byrnes] +vnd.cyan.dean.root+xml,application/vnd.cyan.dean.root+xml,[Matt_Kern] +vnd.cybank,application/vnd.cybank,[Nor_Helmee] +vnd.dart,application/vnd-dart,[Anders_Sandholm] +vnd.data-vision.rdz,application/vnd.data-vision.rdz,[James_Fields] +vnd.dece.data,application/vnd.dece.data,[Michael_A_Dolan] +vnd.dece.ttml+xml,application/vnd.dece.ttml+xml,[Michael_A_Dolan] +vnd.dece.unspecified,application/vnd.dece.unspecified,[Michael_A_Dolan] +vnd.dece.zip,application/vnd.dece-zip,[Michael_A_Dolan] +vnd.denovo.fcselayout-link,application/vnd.denovo.fcselayout-link,[Michael_Dixon] +vnd.desmume.movie,application/vnd.desmume-movie,[Henrik_Andersson] +vnd.dir-bi.plate-dl-nosuffix,application/vnd.dir-bi.plate-dl-nosuffix,[Yamanaka] +vnd.dm.delegation+xml,application/vnd.dm.delegation+xml,[Axel_Ferrazzini] +vnd.dna,application/vnd.dna,[Meredith_Searcy] +vnd.document+json,application/vnd.document+json,[Tom_Christie] +vnd.dolby.mobile.1,application/vnd.dolby.mobile.1,[Steve_Hattersley] +vnd.dolby.mobile.2,application/vnd.dolby.mobile.2,[Steve_Hattersley] +vnd.dpgraph,application/vnd.dpgraph,[David_Parker] +vnd.dreamfactory,application/vnd.dreamfactory,[William_C._Appleton] +vnd.dtg.local,application/vnd.dtg.local,[Ali_Teffahi] +vnd.dtg.local.flash,application/vnd.dtg.local.flash,[Ali_Teffahi] +vnd.dtg.local.html,application/vnd.dtg.local.html,[Ali_Teffahi] +vnd.dvb.ait,application/vnd.dvb.ait,[Peter_Siebert][Michael_Lagally] +vnd.dvb.dvbj,application/vnd.dvb.dvbj,[Peter_Siebert][Michael_Lagally] +vnd.dvb.esgcontainer,application/vnd.dvb.esgcontainer,[Joerg_Heuer] +vnd.dvb.ipdcdftnotifaccess,application/vnd.dvb.ipdcdftnotifaccess,[Roy_Yue] +vnd.dvb.ipdcesgaccess,application/vnd.dvb.ipdcesgaccess,[Joerg_Heuer] +vnd.dvb.ipdcesgaccess2,application/vnd.dvb.ipdcesgaccess2,[Jerome_Marcon] +vnd.dvb.ipdcesgpdd,application/vnd.dvb.ipdcesgpdd,[Jerome_Marcon] +vnd.dvb.ipdcroaming,application/vnd.dvb.ipdcroaming,[Yiling_Xu] +vnd.dvb.iptv.alfec-base,application/vnd.dvb.iptv.alfec-base,[Jean-Baptiste_Henry] +vnd.dvb.iptv.alfec-enhancement,application/vnd.dvb.iptv.alfec-enhancement,[Jean-Baptiste_Henry] +vnd.dvb.notif-aggregate-root+xml,application/vnd.dvb.notif-aggregate-root+xml,[Roy_Yue] +vnd.dvb.notif-container+xml,application/vnd.dvb.notif-container+xml,[Roy_Yue] +vnd.dvb.notif-generic+xml,application/vnd.dvb.notif-generic+xml,[Roy_Yue] +vnd.dvb.notif-ia-msglist+xml,application/vnd.dvb.notif-ia-msglist+xml,[Roy_Yue] +vnd.dvb.notif-ia-registration-request+xml,application/vnd.dvb.notif-ia-registration-request+xml,[Roy_Yue] +vnd.dvb.notif-ia-registration-response+xml,application/vnd.dvb.notif-ia-registration-response+xml,[Roy_Yue] +vnd.dvb.notif-init+xml,application/vnd.dvb.notif-init+xml,[Roy_Yue] +vnd.dvb.pfr,application/vnd.dvb.pfr,[Peter_Siebert][Michael_Lagally] +vnd.dvb.service,application/vnd.dvb_service,[Peter_Siebert][Michael_Lagally] +vnd.dxr,application/vnd-dxr,[Michael_Duffy] +vnd.dynageo,application/vnd.dynageo,[Roland_Mechling] +vnd.easykaraoke.cdgdownload,application/vnd.easykaraoke.cdgdownload,[Iain_Downs] +vnd.ecdis-update,application/vnd.ecdis-update,[Gert_Buettgenbach] +vnd.ecowin.chart,application/vnd.ecowin.chart,[Thomas_Olsson] +vnd.ecowin.filerequest,application/vnd.ecowin.filerequest,[Thomas_Olsson] +vnd.ecowin.fileupdate,application/vnd.ecowin.fileupdate,[Thomas_Olsson] +vnd.ecowin.series,application/vnd.ecowin.series,[Thomas_Olsson] +vnd.ecowin.seriesrequest,application/vnd.ecowin.seriesrequest,[Thomas_Olsson] +vnd.ecowin.seriesupdate,application/vnd.ecowin.seriesupdate,[Thomas_Olsson] +vnd.emclient.accessrequest+xml,application/vnd.emclient.accessrequest+xml,[Filip_Navara] +vnd.enliven,application/vnd.enliven,[Paul_Santinelli_Jr.] +vnd.eprints.data+xml,application/vnd.eprints.data+xml,[Tim_Brody] +vnd.epson.esf,application/vnd.epson.esf,[Shoji_Hoshina] +vnd.epson.msf,application/vnd.epson.msf,[Shoji_Hoshina] +vnd.epson.quickanime,application/vnd.epson.quickanime,[Yu_Gu] +vnd.epson.salt,application/vnd.epson.salt,[Yasuhito_Nagatomo] +vnd.epson.ssf,application/vnd.epson.ssf,[Shoji_Hoshina] +vnd.ericsson.quickcall,application/vnd.ericsson.quickcall,[Paul_Tidwell] +vnd.eszigno3+xml,application/vnd.eszigno3+xml,[Szilveszter_Tóth] +vnd.etsi.aoc+xml,application/vnd.etsi.aoc+xml,[Shicheng_Hu] +vnd.etsi.asic-s+zip,application/vnd.etsi.asic-s+zip,[Miguel_Angel_Reina_Ortega] +vnd.etsi.asic-e+zip,application/vnd.etsi.asic-e+zip,[Miguel_Angel_Reina_Ortega] +vnd.etsi.cug+xml,application/vnd.etsi.cug+xml,[Shicheng_Hu] +vnd.etsi.iptvcommand+xml,application/vnd.etsi.iptvcommand+xml,[Shicheng_Hu] +vnd.etsi.iptvdiscovery+xml,application/vnd.etsi.iptvdiscovery+xml,[Shicheng_Hu] +vnd.etsi.iptvprofile+xml,application/vnd.etsi.iptvprofile+xml,[Shicheng_Hu] +vnd.etsi.iptvsad-bc+xml,application/vnd.etsi.iptvsad-bc+xml,[Shicheng_Hu] +vnd.etsi.iptvsad-cod+xml,application/vnd.etsi.iptvsad-cod+xml,[Shicheng_Hu] +vnd.etsi.iptvsad-npvr+xml,application/vnd.etsi.iptvsad-npvr+xml,[Shicheng_Hu] +vnd.etsi.iptvservice+xml,application/vnd.etsi.iptvservice+xml,[Miguel_Angel_Reina_Ortega] +vnd.etsi.iptvsync+xml,application/vnd.etsi.iptvsync+xml,[Miguel_Angel_Reina_Ortega] +vnd.etsi.iptvueprofile+xml,application/vnd.etsi.iptvueprofile+xml,[Shicheng_Hu] +vnd.etsi.mcid+xml,application/vnd.etsi.mcid+xml,[Shicheng_Hu] +vnd.etsi.mheg5,application/vnd.etsi.mheg5,[Miguel_Angel_Reina_Ortega][Ian_Medland] +vnd.etsi.overload-control-policy-dataset+xml,application/vnd.etsi.overload-control-policy-dataset+xml,[Miguel_Angel_Reina_Ortega] +vnd.etsi.pstn+xml,application/vnd.etsi.pstn+xml,[Jiwan_Han][Thomas_Belling] +vnd.etsi.sci+xml,application/vnd.etsi.sci+xml,[Shicheng_Hu] +vnd.etsi.simservs+xml,application/vnd.etsi.simservs+xml,[Shicheng_Hu] +vnd.etsi.timestamp-token,application/vnd.etsi.timestamp-token,[Miguel_Angel_Reina_Ortega] +vnd.etsi.tsl+xml,application/vnd.etsi.tsl+xml,[Shicheng_Hu] +vnd.etsi.tsl.der,application/vnd.etsi.tsl.der,[Shicheng_Hu] +vnd.eudora.data,application/vnd.eudora.data,[Pete_Resnick] +vnd.ezpix-album,application/vnd.ezpix-album,[ElectronicZombieCorp] +vnd.ezpix-package,application/vnd.ezpix-package,[ElectronicZombieCorp] +vnd.f-secure.mobile,application/vnd.f-secure.mobile,[Samu_Sarivaara] +vnd.fdf,application/vnd-fdf,[Steve_Zilles] +vnd.fdsn.mseed,application/vnd.fdsn.mseed,[Chad_Trabant] +vnd.fdsn.seed,application/vnd.fdsn.seed,[Chad_Trabant] +vnd.ffsns,application/vnd.ffsns,[Holstage] +vnd.fints,application/vnd.fints,[Ingo_Hammann] +vnd.FloGraphIt,application/vnd.FloGraphIt,[Dick_Floersch] +vnd.fluxtime.clip,application/vnd.fluxtime.clip,[Marc_Winter] +vnd.font-fontforge-sfd,application/vnd.font-fontforge-sfd,[George_Williams] +vnd.framemaker,application/vnd.framemaker,[Mike_Wexler] +vnd.frogans.fnc,application/vnd.frogans.fnc,[Alexis_Tamas] +vnd.frogans.ltf,application/vnd.frogans.ltf,[Alexis_Tamas] +vnd.fsc.weblaunch,application/vnd.fsc.weblaunch,[Derek_Smith] +vnd.fujitsu.oasys,application/vnd.fujitsu.oasys,[Nobukazu_Togashi] +vnd.fujitsu.oasys2,application/vnd.fujitsu.oasys2,[Nobukazu_Togashi] +vnd.fujitsu.oasys3,application/vnd.fujitsu.oasys3,[Seiji_Okudaira] +vnd.fujitsu.oasysgp,application/vnd.fujitsu.oasysgp,[Masahiko_Sugimoto] +vnd.fujitsu.oasysprs,application/vnd.fujitsu.oasysprs,[Masumi_Ogita] +vnd.fujixerox.ART4,application/vnd.fujixerox.ART4,[Fumio_Tanabe] +vnd.fujixerox.ART-EX,application/vnd.fujixerox.ART-EX,[Fumio_Tanabe] +vnd.fujixerox.ddd,application/vnd.fujixerox.ddd,[Masanori_Onda] +vnd.fujixerox.docuworks,application/vnd.fujixerox.docuworks,[Yasuo_Taguchi] +vnd.fujixerox.docuworks.binder,application/vnd.fujixerox.docuworks.binder,[Takashi_Matsumoto] +vnd.fujixerox.docuworks.container,application/vnd.fujixerox.docuworks.container,[Kiyoshi_Tashiro] +vnd.fujixerox.HBPL,application/vnd.fujixerox.HBPL,[Fumio_Tanabe] +vnd.fut-misnet,application/vnd.fut-misnet,[Jann_Pruulman] +vnd.fuzzysheet,application/vnd.fuzzysheet,[Simon_Birtwistle] +vnd.genomatix.tuxedo,application/vnd.genomatix.tuxedo,[Torben_Frey] +vnd.geocube+xml - OBSOLETE,application/vnd.geocube+xml,[Francois_Pirsch] +vnd.geogebra.file,application/vnd.geogebra.file,[GeoGebra][Yves_Kreis] +vnd.geogebra.tool,application/vnd.geogebra.tool,[GeoGebra][Yves_Kreis] +vnd.geometry-explorer,application/vnd.geometry-explorer,[Michael_Hvidsten] +vnd.geonext,application/vnd.geonext,[Matthias_Ehmann] +vnd.geoplan,application/vnd.geoplan,[Christian_Mercat] +vnd.geospace,application/vnd.geospace,[Christian_Mercat] +vnd.globalplatform.card-content-mgt,application/vnd.globalplatform.card-content-mgt,[Gil_Bernabeu] +vnd.globalplatform.card-content-mgt-response,application/vnd.globalplatform.card-content-mgt-response,[Gil_Bernabeu] +vnd.gmx - OBSOLETE,application/vnd.gmx,[Christian_V._Sciberras] +vnd.google-earth.kml+xml,application/vnd.google-earth.kml+xml,[Michael_Ashbridge] +vnd.google-earth.kmz,application/vnd.google-earth.kmz,[Michael_Ashbridge] +vnd.grafeq,application/vnd.grafeq,[Jeff_Tupper] +vnd.gridmp,application/vnd.gridmp,[Jeff_Lawson] +vnd.groove-account,application/vnd.groove-account,[Todd_Joseph] +vnd.groove-help,application/vnd.groove-help,[Todd_Joseph] +vnd.groove-identity-message,application/vnd.groove-identity-message,[Todd_Joseph] +vnd.groove-injector,application/vnd.groove-injector,[Todd_Joseph] +vnd.groove-tool-message,application/vnd.groove-tool-message,[Todd_Joseph] +vnd.groove-tool-template,application/vnd.groove-tool-template,[Todd_Joseph] +vnd.groove-vcard,application/vnd.groove-vcard,[Todd_Joseph] +vnd.hal+json,application/vnd.hal+json,[Mike_Kelly] +vnd.hal+xml,application/vnd.hal+xml,[Mike_Kelly] +vnd.HandHeld-Entertainment+xml,application/vnd.HandHeld-Entertainment+xml,[Eric_Hamilton] +vnd.hbci,application/vnd.hbci,[Ingo_Hammann] +vnd.hcl-bireports,application/vnd.hcl-bireports,[Doug_R._Serres] +vnd.heroku+json,application/vnd.heroku+json,[Wesley_Beary] +vnd.hhe.lesson-player,application/vnd.hhe.lesson-player,[Randy_Jones] +vnd.hp-HPGL,application/vnd.hp-HPGL,[Bob_Pentecost] +vnd.hp-hpid,application/vnd.hp-hpid,[Aloke_Gupta] +vnd.hp-hps,application/vnd.hp-hps,[Steve_Aubrey] +vnd.hp-jlyt,application/vnd.hp-jlyt,[Amir_Gaash] +vnd.hp-PCL,application/vnd.hp-PCL,[Bob_Pentecost] +vnd.hp-PCLXL,application/vnd.hp-PCLXL,[Bob_Pentecost] +vnd.httphone,application/vnd.httphone,[Franck_Lefevre] +vnd.hydrostatix.sof-data,application/vnd.hydrostatix.sof-data,[Allen_Gillam] +vnd.hzn-3d-crossword,application/vnd.hzn-3d-crossword,[James_Minnis] +vnd.ibm.afplinedata,application/vnd.ibm.afplinedata,[Roger_Buis] +vnd.ibm.electronic-media,application/vnd.ibm.electronic-media,[Bruce_Tantlinger] +vnd.ibm.MiniPay,application/vnd.ibm.MiniPay,[Amir_Herzberg] +vnd.ibm.modcap,application/vnd.ibm.modcap,[Reinhard_Hohensee] +vnd.ibm.rights-management,application/vnd.ibm.rights-management,[Bruce_Tantlinger] +vnd.ibm.secure-container,application/vnd.ibm.secure-container,[Bruce_Tantlinger] +vnd.iccprofile,application/vnd.iccprofile,[Phil_Green] +vnd.ieee.1905,application/vnd.ieee.1905,[Purva_R_Rajkotia] +vnd.igloader,application/vnd.igloader,[Tim_Fisher] +vnd.immervision-ivp,application/vnd.immervision-ivp,[Mathieu_Villegas] +vnd.immervision-ivu,application/vnd.immervision-ivu,[Mathieu_Villegas] +vnd.informedcontrol.rms+xml,application/vnd.informedcontrol.rms+xml,[Mark_Wahl] +vnd.infotech.project,application/vnd.infotech.project,[Charles_Engelke] +vnd.infotech.project+xml,application/vnd.infotech.project+xml,[Charles_Engelke] +vnd.informix-visionary,application/vnd.informix-visionary,[Christopher_Gales] +vnd.innopath.wamp.notification,application/vnd.innopath.wamp.notification,[Takanori_Sudo] +vnd.insors.igm,application/vnd.insors.igm,[Jon_Swanson] +vnd.intercon.formnet,application/vnd.intercon.formnet,[Tom_Gurak] +vnd.intergeo,application/vnd.intergeo,[Yves_Kreis_2] +vnd.intertrust.digibox,application/vnd.intertrust.digibox,[Luke_Tomasello] +vnd.intertrust.nncp,application/vnd.intertrust.nncp,[Luke_Tomasello] +vnd.intu.qbo,application/vnd.intu.qbo,[Greg_Scratchley] +vnd.intu.qfx,application/vnd.intu.qfx,[Greg_Scratchley] +vnd.iptc.g2.catalogitem+xml,application/vnd.iptc.g2.catalogitem+xml,[Michael_Steidl] +vnd.iptc.g2.conceptitem+xml,application/vnd.iptc.g2.conceptitem+xml,[Michael_Steidl] +vnd.iptc.g2.knowledgeitem+xml,application/vnd.iptc.g2.knowledgeitem+xml,[Michael_Steidl] +vnd.iptc.g2.newsitem+xml,application/vnd.iptc.g2.newsitem+xml,[Michael_Steidl] +vnd.iptc.g2.newsmessage+xml,application/vnd.iptc.g2.newsmessage+xml,[Michael_Steidl] +vnd.iptc.g2.packageitem+xml,application/vnd.iptc.g2.packageitem+xml,[Michael_Steidl] +vnd.iptc.g2.planningitem+xml,application/vnd.iptc.g2.planningitem+xml,[Michael_Steidl] +vnd.ipunplugged.rcprofile,application/vnd.ipunplugged.rcprofile,[Per_Ersson] +vnd.irepository.package+xml,application/vnd.irepository.package+xml,[Martin_Knowles] +vnd.is-xpr,application/vnd.is-xpr,[Satish_Navarajan] +vnd.isac.fcs,application/vnd.isac.fcs,[Ryan_Brinkman] +vnd.jam,application/vnd.jam,[Brijesh_Kumar] +vnd.japannet-directory-service,application/vnd.japannet-directory-service,[Kiyofusa_Fujii] +vnd.japannet-jpnstore-wakeup,application/vnd.japannet-jpnstore-wakeup,[Jun_Yoshitake] +vnd.japannet-payment-wakeup,application/vnd.japannet-payment-wakeup,[Kiyofusa_Fujii] +vnd.japannet-registration,application/vnd.japannet-registration,[Jun_Yoshitake] +vnd.japannet-registration-wakeup,application/vnd.japannet-registration-wakeup,[Kiyofusa_Fujii] +vnd.japannet-setstore-wakeup,application/vnd.japannet-setstore-wakeup,[Jun_Yoshitake] +vnd.japannet-verification,application/vnd.japannet-verification,[Jun_Yoshitake] +vnd.japannet-verification-wakeup,application/vnd.japannet-verification-wakeup,[Kiyofusa_Fujii] +vnd.jcp.javame.midlet-rms,application/vnd.jcp.javame.midlet-rms,[Mikhail_Gorshenev] +vnd.jisp,application/vnd.jisp,[Sebastiaan_Deckers] +vnd.joost.joda-archive,application/vnd.joost.joda-archive,[Joost] +vnd.jsk.isdn-ngn,application/vnd.jsk.isdn-ngn,[Yokoyama_Kiyonobu] +vnd.kahootz,application/vnd.kahootz,[Tim_Macdonald] +vnd.kde.karbon,application/vnd.kde.karbon,[David_Faure] +vnd.kde.kchart,application/vnd.kde.kchart,[David_Faure] +vnd.kde.kformula,application/vnd.kde.kformula,[David_Faure] +vnd.kde.kivio,application/vnd.kde.kivio,[David_Faure] +vnd.kde.kontour,application/vnd.kde.kontour,[David_Faure] +vnd.kde.kpresenter,application/vnd.kde.kpresenter,[David_Faure] +vnd.kde.kspread,application/vnd.kde.kspread,[David_Faure] +vnd.kde.kword,application/vnd.kde.kword,[David_Faure] +vnd.kenameaapp,application/vnd.kenameaapp,[Dirk_DiGiorgio-Haag] +vnd.kidspiration,application/vnd.kidspiration,[Jack_Bennett] +vnd.Kinar,application/vnd.Kinar,[Hemant_Thakkar] +vnd.koan,application/vnd.koan,[Pete_Cole] +vnd.kodak-descriptor,application/vnd.kodak-descriptor,[Michael_J._Donahue] +vnd.las.las+xml,application/vnd.las.las+xml,[Rob_Bailey] +vnd.liberty-request+xml,application/vnd.liberty-request+xml,[Brett_McDowell] +vnd.llamagraphics.life-balance.desktop,application/vnd.llamagraphics.life-balance.desktop,[Catherine_E._White] +vnd.llamagraphics.life-balance.exchange+xml,application/vnd.llamagraphics.life-balance.exchange+xml,[Catherine_E._White] +vnd.lotus-1-2-3,application/vnd.lotus-1-2-3,[Paul_Wattenberger] +vnd.lotus-approach,application/vnd.lotus-approach,[Paul_Wattenberger] +vnd.lotus-freelance,application/vnd.lotus-freelance,[Paul_Wattenberger] +vnd.lotus-notes,application/vnd.lotus-notes,[Michael_Laramie] +vnd.lotus-organizer,application/vnd.lotus-organizer,[Paul_Wattenberger] +vnd.lotus-screencam,application/vnd.lotus-screencam,[Paul_Wattenberger] +vnd.lotus-wordpro,application/vnd.lotus-wordpro,[Paul_Wattenberger] +vnd.macports.portpkg,application/vnd.macports.portpkg,[James_Berry] +vnd.marlin.drm.actiontoken+xml,application/vnd.marlin.drm.actiontoken+xml,[Gary_Ellison] +vnd.marlin.drm.conftoken+xml,application/vnd.marlin.drm.conftoken+xml,[Gary_Ellison] +vnd.marlin.drm.license+xml,application/vnd.marlin.drm.license+xml,[Gary_Ellison] +vnd.marlin.drm.mdcf,application/vnd.marlin.drm.mdcf,[Gary_Ellison] +vnd.mcd,application/vnd.mcd,[Tadashi_Gotoh] +vnd.medcalcdata,application/vnd.medcalcdata,[Frank_Schoonjans] +vnd.mediastation.cdkey,application/vnd.mediastation.cdkey,[Henry_Flurry] +vnd.meridian-slingshot,application/vnd.meridian-slingshot,[Eric_Wedel] +vnd.MFER,application/vnd.MFER,[Masaaki_Hirai] +vnd.mfmp,application/vnd.mfmp,[Yukari_Ikeda] +vnd.micrografx.flo,application/vnd.micrografx.flo,[Joe_Prevo] +vnd.micrografx.igx,application/vnd.micrografx-igx,[Joe_Prevo] +vnd.mif,application/vnd-mif,[Mike_Wexler] +vnd.minisoft-hp3000-save,application/vnd.minisoft-hp3000-save,[Chris_Bartram] +vnd.mitsubishi.misty-guard.trustweb,application/vnd.mitsubishi.misty-guard.trustweb,[Tanaka] +vnd.Mobius.DAF,application/vnd.Mobius.DAF,[Allen_K._Kabayama] +vnd.Mobius.DIS,application/vnd.Mobius.DIS,[Allen_K._Kabayama] +vnd.Mobius.MBK,application/vnd.Mobius.MBK,[Alex_Devasia] +vnd.Mobius.MQY,application/vnd.Mobius.MQY,[Alex_Devasia] +vnd.Mobius.MSL,application/vnd.Mobius.MSL,[Allen_K._Kabayama] +vnd.Mobius.PLC,application/vnd.Mobius.PLC,[Allen_K._Kabayama] +vnd.Mobius.TXF,application/vnd.Mobius.TXF,[Allen_K._Kabayama] +vnd.mophun.application,application/vnd.mophun.application,[Bjorn_Wennerstrom] +vnd.mophun.certificate,application/vnd.mophun.certificate,[Bjorn_Wennerstrom] +vnd.motorola.flexsuite,application/vnd.motorola.flexsuite,[Mark_Patton] +vnd.motorola.flexsuite.adsi,application/vnd.motorola.flexsuite.adsi,[Mark_Patton] +vnd.motorola.flexsuite.fis,application/vnd.motorola.flexsuite.fis,[Mark_Patton] +vnd.motorola.flexsuite.gotap,application/vnd.motorola.flexsuite.gotap,[Mark_Patton] +vnd.motorola.flexsuite.kmr,application/vnd.motorola.flexsuite.kmr,[Mark_Patton] +vnd.motorola.flexsuite.ttc,application/vnd.motorola.flexsuite.ttc,[Mark_Patton] +vnd.motorola.flexsuite.wem,application/vnd.motorola.flexsuite.wem,[Mark_Patton] +vnd.motorola.iprm,application/vnd.motorola.iprm,[Rafie_Shamsaasef] +vnd.mozilla.xul+xml,application/vnd.mozilla.xul+xml,[Braden_N_McDaniel] +vnd.ms-artgalry,application/vnd.ms-artgalry,[Dean_Slawson] +vnd.ms-asf,application/vnd.ms-asf,[Eric_Fleischman] +vnd.ms-cab-compressed,application/vnd.ms-cab-compressed,[Kim_Scarborough] +vnd.mseq,application/vnd.mseq,[Gwenael_Le_Bodic] +vnd.ms-excel,application/vnd.ms-excel,[Sukvinder_S._Gill] +vnd.ms-excel.addin.macroEnabled.12,application/vnd.ms-excel.addin.macroEnabled.12,[Chris_Rae] +vnd.ms-excel.sheet.binary.macroEnabled.12,application/vnd.ms-excel.sheet.binary.macroEnabled.12,[Chris_Rae] +vnd.ms-excel.sheet.macroEnabled.12,application/vnd.ms-excel.sheet.macroEnabled.12,[Chris_Rae] +vnd.ms-excel.template.macroEnabled.12,application/vnd.ms-excel.template.macroEnabled.12,[Chris_Rae] +vnd.ms-fontobject,application/vnd.ms-fontobject,[Kim_Scarborough] +vnd.ms-htmlhelp,application/vnd.ms-htmlhelp,[Anatoly_Techtonik] +vnd.ms-ims,application/vnd.ms-ims,[Eric_Ledoux] +vnd.ms-lrm,application/vnd.ms-lrm,[Eric_Ledoux] +vnd.ms-office.activeX+xml,application/vnd.ms-office.activeX+xml,[Chris_Rae] +vnd.ms-officetheme,application/vnd.ms-officetheme,[Chris_Rae] +vnd.ms-playready.initiator+xml,application/vnd.ms-playready.initiator+xml,[Daniel_Schneider] +vnd.ms-powerpoint,application/vnd.ms-powerpoint,[Sukvinder_S._Gill] +vnd.ms-powerpoint.addin.macroEnabled.12,application/vnd.ms-powerpoint.addin.macroEnabled.12,[Chris_Rae] +vnd.ms-powerpoint.presentation.macroEnabled.12,application/vnd.ms-powerpoint.presentation.macroEnabled.12,[Chris_Rae] +vnd.ms-powerpoint.slide.macroEnabled.12,application/vnd.ms-powerpoint.slide.macroEnabled.12,[Chris_Rae] +vnd.ms-powerpoint.slideshow.macroEnabled.12,application/vnd.ms-powerpoint.slideshow.macroEnabled.12,[Chris_Rae] +vnd.ms-powerpoint.template.macroEnabled.12,application/vnd.ms-powerpoint.template.macroEnabled.12,[Chris_Rae] +vnd.ms-project,application/vnd.ms-project,[Sukvinder_S._Gill] +vnd.ms-tnef,application/vnd.ms-tnef,[Sukvinder_S._Gill] +vnd.ms-windows.printerpairing,application/vnd.ms-windows.printerpairing,[Justin_Hutchings] +vnd.ms-wmdrm.lic-chlg-req,application/vnd.ms-wmdrm.lic-chlg-req,[Kevin_Lau] +vnd.ms-wmdrm.lic-resp,application/vnd.ms-wmdrm.lic-resp,[Kevin_Lau] +vnd.ms-wmdrm.meter-chlg-req,application/vnd.ms-wmdrm.meter-chlg-req,[Kevin_Lau] +vnd.ms-wmdrm.meter-resp,application/vnd.ms-wmdrm.meter-resp,[Kevin_Lau] +vnd.ms-word.document.macroEnabled.12,application/vnd.ms-word.document.macroEnabled.12,[Chris_Rae] +vnd.ms-word.template.macroEnabled.12,application/vnd.ms-word.template.macroEnabled.12,[Chris_Rae] +vnd.ms-works,application/vnd.ms-works,[Sukvinder_S._Gill] +vnd.ms-wpl,application/vnd.ms-wpl,[Dan_Plastina] +vnd.ms-xpsdocument,application/vnd.ms-xpsdocument,[Jesse_McGatha] +vnd.msign,application/vnd.msign,[Malte_Borcherding] +vnd.multiad.creator,application/vnd.multiad.creator,[Steve_Mills] +vnd.multiad.creator.cif,application/vnd.multiad.creator.cif,[Steve_Mills] +vnd.musician,application/vnd.musician,[Greg_Adams] +vnd.music-niff,application/vnd.music-niff,[Tim_Butler] +vnd.muvee.style,application/vnd.muvee.style,[Chandrashekhara_Anantharamu] +vnd.mynfc,application/vnd.mynfc,[Franck_Lefevre] +vnd.ncd.control,application/vnd.ncd.control,[Lauri_Tarkkala] +vnd.ncd.reference,application/vnd.ncd.reference,[Lauri_Tarkkala] +vnd.nervana,application/vnd.nervana,[Steve_Judkins] +vnd.netfpx,application/vnd.netfpx,[Andy_Mutz] +vnd.neurolanguage.nlu,application/vnd.neurolanguage.nlu,[Dan_DuFeu] +vnd.nintendo.snes.rom,application/vnd.nintendo.snes.rom,[Henrik_Andersson] +vnd.nintendo.nitro.rom,application/vnd.nintendo.nitro.rom,[Henrik_Andersson] +vnd.nitf,application/vnd.nitf,[Steve_Rogan] +vnd.noblenet-directory,application/vnd.noblenet-directory,[Monty_Solomon] +vnd.noblenet-sealer,application/vnd.noblenet-sealer,[Monty_Solomon] +vnd.noblenet-web,application/vnd.noblenet-web,[Monty_Solomon] +vnd.nokia.catalogs,application/vnd.nokia.catalogs,[Nokia] +vnd.nokia.conml+wbxml,application/vnd.nokia.conml+wbxml,[Nokia] +vnd.nokia.conml+xml,application/vnd.nokia.conml+xml,[Nokia] +vnd.nokia.iptv.config+xml,application/vnd.nokia.iptv.config+xml,[Nokia] +vnd.nokia.iSDS-radio-presets,application/vnd.nokia.iSDS-radio-presets,[Nokia] +vnd.nokia.landmark+wbxml,application/vnd.nokia.landmark+wbxml,[Nokia] +vnd.nokia.landmark+xml,application/vnd.nokia.landmark+xml,[Nokia] +vnd.nokia.landmarkcollection+xml,application/vnd.nokia.landmarkcollection+xml,[Nokia] +vnd.nokia.ncd,application/vnd.nokia.ncd,[Nokia] +vnd.nokia.n-gage.ac+xml,application/vnd.nokia.n-gage.ac+xml,[Nokia] +vnd.nokia.n-gage.data,application/vnd.nokia.n-gage.data,[Nokia] +vnd.nokia.n-gage.symbian.install,application/vnd.nokia.n-gage.symbian.install,[Nokia] +vnd.nokia.pcd+wbxml,application/vnd.nokia.pcd+wbxml,[Nokia] +vnd.nokia.pcd+xml,application/vnd.nokia.pcd+xml,[Nokia] +vnd.nokia.radio-preset,application/vnd.nokia.radio-preset,[Nokia] +vnd.nokia.radio-presets,application/vnd.nokia.radio-presets,[Nokia] +vnd.novadigm.EDM,application/vnd.novadigm.EDM,[Janine_Swenson] +vnd.novadigm.EDX,application/vnd.novadigm.EDX,[Janine_Swenson] +vnd.novadigm.EXT,application/vnd.novadigm.EXT,[Janine_Swenson] +vnd.ntt-local.content-share,application/vnd.ntt-local.content-share,[Akinori_Taya] +vnd.ntt-local.file-transfer,application/vnd.ntt-local.file-transfer,[NTT-local] +vnd.ntt-local.sip-ta_remote,application/vnd.ntt-local.sip-ta_remote,[NTT-local] +vnd.ntt-local.sip-ta_tcp_stream,application/vnd.ntt-local.sip-ta_tcp_stream,[NTT-local] +vnd.oasis.opendocument.chart,application/vnd.oasis.opendocument.chart,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.chart-template,application/vnd.oasis.opendocument.chart-template,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.database,application/vnd.oasis.opendocument.database,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.formula,application/vnd.oasis.opendocument.formula,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.formula-template,application/vnd.oasis.opendocument.formula-template,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.graphics,application/vnd.oasis.opendocument.graphics,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.graphics-template,application/vnd.oasis.opendocument.graphics-template,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.image,application/vnd.oasis.opendocument.image,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.image-template,application/vnd.oasis.opendocument.image-template,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.presentation,application/vnd.oasis.opendocument.presentation,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.presentation-template,application/vnd.oasis.opendocument.presentation-template,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.spreadsheet,application/vnd.oasis.opendocument.spreadsheet,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.spreadsheet-template,application/vnd.oasis.opendocument.spreadsheet-template,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.text,application/vnd.oasis.opendocument.text,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.text-master,application/vnd.oasis.opendocument.text-master,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.text-template,application/vnd.oasis.opendocument.text-template,[Svante_Schubert][OASIS] +vnd.oasis.opendocument.text-web,application/vnd.oasis.opendocument.text-web,[Svante_Schubert][OASIS] +vnd.obn,application/vnd.obn,[Matthias_Hessling] +vnd.oftn.l10n+json,application/vnd.oftn.l10n+json,[Eli_Grey] +vnd.oipf.contentaccessdownload+xml,application/vnd.oipf.contentaccessdownload+xml,[Claire_DEsclercs] +vnd.oipf.contentaccessstreaming+xml,application/vnd.oipf.contentaccessstreaming+xml,[Claire_DEsclercs] +vnd.oipf.cspg-hexbinary,application/vnd.oipf.cspg-hexbinary,[Claire_DEsclercs] +vnd.oipf.dae.svg+xml,application/vnd.oipf.dae.svg+xml,[Claire_DEsclercs] +vnd.oipf.dae.xhtml+xml,application/vnd.oipf.dae.xhtml+xml,[Claire_DEsclercs] +vnd.oipf.mippvcontrolmessage+xml,application/vnd.oipf.mippvcontrolmessage+xml,[Claire_DEsclercs] +vnd.oipf.pae.gem,application/vnd.oipf.pae.gem,[Claire_DEsclercs] +vnd.oipf.spdiscovery+xml,application/vnd.oipf.spdiscovery+xml,[Claire_DEsclercs] +vnd.oipf.spdlist+xml,application/vnd.oipf.spdlist+xml,[Claire_DEsclercs] +vnd.oipf.ueprofile+xml,application/vnd.oipf.ueprofile+xml,[Claire_DEsclercs] +vnd.oipf.userprofile+xml,application/vnd.oipf.userprofile+xml,[Claire_DEsclercs] +vnd.olpc-sugar,application/vnd.olpc-sugar,[John_Palmieri] +vnd.oma.bcast.associated-procedure-parameter+xml,application/vnd.oma.bcast.associated-procedure-parameter+xml,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.bcast.drm-trigger+xml,application/vnd.oma.bcast.drm-trigger+xml,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.bcast.imd+xml,application/vnd.oma.bcast.imd+xml,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.bcast.ltkm,application/vnd.oma.bcast.ltkm,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.bcast.notification+xml,application/vnd.oma.bcast.notification+xml,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.bcast.provisioningtrigger,application/vnd.oma.bcast.provisioningtrigger,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.bcast.sgboot,application/vnd.oma.bcast.sgboot,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.bcast.sgdd+xml,application/vnd.oma.bcast.sgdd+xml,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.bcast.sgdu,application/vnd.oma.bcast.sgdu,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.bcast.simple-symbol-container,application/vnd.oma.bcast.simple-symbol-container,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.bcast.smartcard-trigger+xml,application/vnd.oma.bcast.smartcard-trigger+xml,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.bcast.sprov+xml,application/vnd.oma.bcast.sprov+xml,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.bcast.stkm,application/vnd.oma.bcast.stkm,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.cab-address-book+xml,application/vnd.oma.cab-address-book+xml,[Hao_Wang][OMA] +vnd.oma.cab-feature-handler+xml,application/vnd.oma.cab-feature-handler+xml,[Hao_Wang][OMA] +vnd.oma.cab-pcc+xml,application/vnd.oma.cab-pcc+xml,[Hao_Wang][OMA] +vnd.oma.cab-subs-invite+xml,application/vnd.oma.cab-subs-invite+xml,[Hao_Wang][OMA] +vnd.oma.cab-user-prefs+xml,application/vnd.oma.cab-user-prefs+xml,[Hao_Wang][OMA] +vnd.oma.dcd,application/vnd.oma.dcd,[Avi_Primo][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.dcdc,application/vnd.oma.dcdc,[Avi_Primo][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.dd2+xml,application/vnd.oma.dd2+xml,[Jun_Sato][Open_Mobile_Alliance_BAC_DLDRM_Working_Group] +vnd.oma.drm.risd+xml,application/vnd.oma.drm.risd+xml,[Uwe_Rauschenbach][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.group-usage-list+xml,application/vnd.oma.group-usage-list+xml,[Sean_Kelley][OMA_Presence_and_Availability_PAG_Working_Group] +vnd.oma.pal+xml,application/vnd.oma.pal+xml,[Brian_McColgan][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.poc.detailed-progress-report+xml,application/vnd.oma.poc.detailed-progress-report+xml,[OMA_Push_to_Talk_over_Cellular_POC_Working_Group] +vnd.oma.poc.final-report+xml,application/vnd.oma.poc.final-report+xml,[OMA_Push_to_Talk_over_Cellular_POC_Working_Group] +vnd.oma.poc.groups+xml,application/vnd.oma.poc.groups+xml,[Sean_Kelley][OMA_Push_to_Talk_over_Cellular_POC_Working_Group] +vnd.oma.poc.invocation-descriptor+xml,application/vnd.oma.poc.invocation-descriptor+xml,[OMA_Push_to_Talk_over_Cellular_POC_Working_Group] +vnd.oma.poc.optimized-progress-report+xml,application/vnd.oma.poc.optimized-progress-report+xml,[OMA_Push_to_Talk_over_Cellular_POC_Working_Group] +vnd.oma.push,application/vnd.oma.push,[Bryan_Sullivan][OMA] +vnd.oma.scidm.messages+xml,application/vnd.oma.scidm.messages+xml,[Wenjun_Zeng][OMNA-Open_Mobile_Naming_Authority] +vnd.oma.xcap-directory+xml,application/vnd.oma.xcap-directory+xml,[Sean_Kelley][OMA_Presence_and_Availability_PAG_Working_Group] +vnd.omads-email+xml,application/vnd.omads-email+xml,[OMA_Data_Synchronization_Working_Group] +vnd.omads-file+xml,application/vnd.omads-file+xml,[OMA_Data_Synchronization_Working_Group] +vnd.omads-folder+xml,application/vnd.omads-folder+xml,[OMA_Data_Synchronization_Working_Group] +vnd.omaloc-supl-init,application/vnd.omaloc-supl-init,[Julien_Grange] +vnd.oma-scws-config,application/vnd.oma-scws-config,[Ilan_Mahalal] +vnd.oma-scws-http-request,application/vnd.oma-scws-http-request,[Ilan_Mahalal] +vnd.oma-scws-http-response,application/vnd.oma-scws-http-response,[Ilan_Mahalal] +vnd.openeye.oeb,application/vnd.openeye.oeb,[Craig_Bruce] +vnd.openxmlformats-officedocument.custom-properties+xml,application/vnd.openxmlformats-officedocument.custom-properties+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.customXmlProperties+xml,application/vnd.openxmlformats-officedocument.customXmlProperties+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.drawing+xml,application/vnd.openxmlformats-officedocument.drawing+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.drawingml.chart+xml,application/vnd.openxmlformats-officedocument.drawingml.chart+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.drawingml.chartshapes+xml,application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.drawingml.diagramColors+xml,application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.drawingml.diagramData+xml,application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml,application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml,application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.extended-properties+xml,application/vnd.openxmlformats-officedocument.extended-properties+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml,application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.comments+xml,application/vnd.openxmlformats-officedocument.presentationml.comments+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml,application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.notesMaster+xml,application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.notesSlide+xml,application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.openxmlformats-officedocument.presentationml.presentation,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.presentation.main+xml,application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.presProps+xml,application/vnd.openxmlformats-officedocument.presentationml.presProps+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.slide,application/vnd.openxmlformats-officedocument.presentationml.slide,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.slide+xml,application/vnd.openxmlformats-officedocument.presentationml.slide+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.slideLayout+xml,application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.slideMaster+xml,application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.slideshow,application/vnd.openxmlformats-officedocument.presentationml.slideshow,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml,application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml,application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.tableStyles+xml,application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.tags+xml,application/vnd.openxmlformats-officedocument.presentationml.tags+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.template,application/vnd.openxmlformats-officedocument.presentationml-template,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.template.main+xml,application/vnd.openxmlformats-officedocument.presentationml.template.main+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.presentationml.viewProps+xml,application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.comments+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.connections+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.styles+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.table+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.template,application/vnd.openxmlformats-officedocument.spreadsheetml-template,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml,application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.theme+xml,application/vnd.openxmlformats-officedocument.theme+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.themeOverride+xml,application/vnd.openxmlformats-officedocument.themeOverride+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.vmlDrawing,application/vnd.openxmlformats-officedocument.vmlDrawing,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.comments+xml,application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.wordprocessingml.document,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml,application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml,application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml,application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml,application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.footer+xml,application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml,application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml,application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.settings+xml,application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.styles+xml,application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.template,application/vnd.openxmlformats-officedocument.wordprocessingml-template,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml,application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml,[Makoto_Murata] +vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml,application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml,[Makoto_Murata] +vnd.openxmlformats-package.core-properties+xml,application/vnd.openxmlformats-package.core-properties+xml,[Makoto_Murata] +vnd.openxmlformats-package.digital-signature-xmlsignature+xml,application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml,[Makoto_Murata] +vnd.openxmlformats-package.relationships+xml,application/vnd.openxmlformats-package.relationships+xml,[Makoto_Murata] +vnd.orange.indata,application/vnd.orange.indata,[CHATRAS_Bruno] +vnd.osa.netdeploy,application/vnd.osa.netdeploy,[Steven_Klos] +vnd.osgeo.mapguide.package,application/vnd.osgeo.mapguide.package,[Jason_Birch] +vnd.osgi.bundle,application/vnd.osgi.bundle,[Peter_Kriens] +vnd.osgi.dp,application/vnd.osgi.dp,[Peter_Kriens] +vnd.osgi.subsystem,application/vnd.osgi.subsystem,[Peter_Kriens] +vnd.otps.ct-kip+xml,application/vnd.otps.ct-kip+xml,[Magnus_Nystrom] +vnd.palm,application/vnd.palm,[Gavin_Peacock] +vnd.paos.xml,application/vnd.paos+xml,[John_Kemp] +vnd.pawaafile,application/vnd.pawaafile,[Prakash_Baskaran] +vnd.pcos,application/vnd.pcos,[Slawomir_Lisznianski] +vnd.pg.format,application/vnd.pg.format,[April_Gandert] +vnd.pg.osasli,application/vnd.pg.osasli,[April_Gandert] +vnd.piaccess.application-licence,application/vnd.piaccess.application-licence,[Lucas_Maneos] +vnd.picsel,application/vnd.picsel,[Giuseppe_Naccarato] +vnd.pmi.widget,application/vnd.pmi.widget,[Rhys_Lewis] +vnd.poc.group-advertisement+xml,application/vnd.poc.group-advertisement+xml,[Sean_Kelley][OMA_Push_to_Talk_over_Cellular_POC_Working_Group] +vnd.pocketlearn,application/vnd.pocketlearn,[Jorge_Pando] +vnd.powerbuilder6,application/vnd.powerbuilder6,[David_Guy] +vnd.powerbuilder6-s,application/vnd.powerbuilder6-s,[David_Guy] +vnd.powerbuilder7,application/vnd.powerbuilder7,[Reed_Shilts] +vnd.powerbuilder75,application/vnd.powerbuilder75,[Reed_Shilts] +vnd.powerbuilder75-s,application/vnd.powerbuilder75-s,[Reed_Shilts] +vnd.powerbuilder7-s,application/vnd.powerbuilder7-s,[Reed_Shilts] +vnd.preminet,application/vnd.preminet,[Juoko_Tenhunen] +vnd.previewsystems.box,application/vnd.previewsystems.box,[Roman_Smolgovsky] +vnd.proteus.magazine,application/vnd.proteus.magazine,[Pete_Hoch] +vnd.publishare-delta-tree,application/vnd.publishare-delta-tree,[Oren_Ben-Kiki] +vnd.pvi.ptid1,application/vnd.pvi.ptid1,[Charles_P._Lamb] +vnd.pwg-multiplexed,,[RFC3391] +vnd.pwg-xhtml-print+xml,application/vnd.pwg-xhtml-print+xml,[Don_Wright] +vnd.qualcomm.brew-app-res,application/vnd.qualcomm.brew-app-res,[Glenn_Forrester] +vnd.Quark.QuarkXPress,application/vnd.Quark.QuarkXPress,[Hannes_Scheidler] +vnd.quobject-quoxdocument,application/vnd.quobject-quoxdocument,[Matthias_Ludwig] +vnd.radisys.moml+xml,,[RFC5707] +vnd.radisys.msml-audit-conf+xml,,[RFC5707] +vnd.radisys.msml-audit-conn+xml,,[RFC5707] +vnd.radisys.msml-audit-dialog+xml,,[RFC5707] +vnd.radisys.msml-audit-stream+xml,,[RFC5707] +vnd.radisys.msml-audit+xml,,[RFC5707] +vnd.radisys.msml-conf+xml,,[RFC5707] +vnd.radisys.msml-dialog-base+xml,,[RFC5707] +vnd.radisys.msml-dialog-fax-detect+xml,,[RFC5707] +vnd.radisys.msml-dialog-fax-sendrecv+xml,,[RFC5707] +vnd.radisys.msml-dialog-group+xml,,[RFC5707] +vnd.radisys.msml-dialog-speech+xml,,[RFC5707] +vnd.radisys.msml-dialog-transform+xml,,[RFC5707] +vnd.radisys.msml-dialog+xml,,[RFC5707] +vnd.radisys.msml+xml,,[RFC5707] +vnd.rainstor.data,application/vnd.rainstor.data,[Kevin_Crook] +vnd.rapid,application/vnd.rapid,[Etay_Szekely] +vnd.realvnc.bed,application/vnd.realvnc.bed,[Nick_Reeves] +vnd.recordare.musicxml,application/vnd.recordare.musicxml,[Michael_Good] +vnd.recordare.musicxml+xml,application/vnd.recordare.musicxml+xml,[Michael_Good] +vnd.RenLearn.rlprint,application/vnd.renlearn.rlprint,[James_Wick] +vnd.rig.cryptonote,application/vnd.rig.cryptonote,[Ken_Jibiki] +vnd.route66.link66+xml,application/vnd.route66.link66+xml,[Sybren_Kikstra] +vnd.rs-274x,application/vnd.rs-274x,[Lee_Harding] +vnd.ruckus.download,application/vnd.ruckus.download,[Jerry_Harris] +vnd.s3sms,application/vnd.s3sms,[Lauri_Tarkkala] +vnd.sailingtracker.track,application/vnd.sailingtracker.track,[Heikki_Vesalainen] +vnd.sbm.cid,application/vnd.sbm.cid,[Shinji_Kusakari] +vnd.sbm.mid2,application/vnd.sbm.mid2,[Masanori_Murai] +vnd.scribus,application/vnd.scribus,[Craig_Bradney] +vnd.sealed.3df,application/vnd.sealed.3df,[John_Kwan] +vnd.sealed.csf,application/vnd.sealed.csf,[John_Kwan] +vnd.sealed.doc,application/vnd.sealed-doc,[David_Petersen] +vnd.sealed.eml,application/vnd.sealed-eml,[David_Petersen] +vnd.sealed.mht,application/vnd.sealed-mht,[David_Petersen] +vnd.sealed.net,application/vnd.sealed.net,[Martin_Lambert] +vnd.sealed.ppt,application/vnd.sealed-ppt,[David_Petersen] +vnd.sealed.tiff,application/vnd.sealed-tiff,[John_Kwan][Martin_Lambert] +vnd.sealed.xls,application/vnd.sealed-xls,[David_Petersen] +vnd.sealedmedia.softseal.html,application/vnd.sealedmedia.softseal-html,[David_Petersen] +vnd.sealedmedia.softseal.pdf,application/vnd.sealedmedia.softseal-pdf,[David_Petersen] +vnd.seemail,application/vnd.seemail,[Steve_Webb] +vnd.sema,application/vnd-sema,[Anders_Hansson] +vnd.semd,application/vnd.semd,[Anders_Hansson] +vnd.semf,application/vnd.semf,[Anders_Hansson] +vnd.shana.informed.formdata,application/vnd.shana.informed.formdata,[Guy_Selzler] +vnd.shana.informed.formtemplate,application/vnd.shana.informed.formtemplate,[Guy_Selzler] +vnd.shana.informed.interchange,application/vnd.shana.informed.interchange,[Guy_Selzler] +vnd.shana.informed.package,application/vnd.shana.informed.package,[Guy_Selzler] +vnd.SimTech-MindMapper,application/vnd.SimTech-MindMapper,[Patrick_Koh] +vnd.siren+json,application/vnd.siren+json,[Kevin_Swiber] +vnd.smaf,application/vnd.smaf,[Hiroaki_Takahashi] +vnd.smart.notebook,application/vnd.smart.notebook,[Jonathan_Neitz] +vnd.smart.teacher,application/vnd.smart.teacher,[Michael_Boyle] +vnd.software602.filler.form+xml,application/vnd.software602.filler.form+xml,[Jakub_Hytka][Martin_Vondrous] +vnd.software602.filler.form-xml-zip,application/vnd.software602.filler.form-xml-zip,[Jakub_Hytka][Martin_Vondrous] +vnd.solent.sdkm+xml,application/vnd.solent.sdkm+xml,[Cliff_Gauntlett] +vnd.spotfire.dxp,application/vnd.spotfire.dxp,[Stefan_Jernberg] +vnd.spotfire.sfs,application/vnd.spotfire.sfs,[Stefan_Jernberg] +vnd.sss-cod,application/vnd.sss-cod,[Asang_Dani] +vnd.sss-dtf,application/vnd.sss-dtf,[Eric_Bruno] +vnd.sss-ntf,application/vnd.sss-ntf,[Eric_Bruno] +vnd.stepmania.package,application/vnd.stepmania.package,[Henrik_Andersson] +vnd.stepmania.stepchart,application/vnd.stepmania.stepchart,[Henrik_Andersson] +vnd.street-stream,application/vnd.street-stream,[Glenn_Levitt] +vnd.sun.wadl+xml,application/vnd.sun.wadl+xml,[Marc_Hadley] +vnd.sus-calendar,application/vnd.sus-calendar,[Jonathan_Niedfeldt] +vnd.svd,application/vnd.svd,[Scott_Becker] +vnd.swiftview-ics,application/vnd.swiftview-ics,[Glenn_Widener] +vnd.syncml.dm.notification,application/vnd.syncml.dm.notification,[Peter_Thompson][OMA-DM_Work_Group] +vnd.syncml.dmddf+xml,application/vnd.syncml.dmddf+xml,[OMA-DM_Work_Group] +vnd.syncml.dmtnds+wbxml,application/vnd.syncml.dmtnds+wbxml,[OMA-DM_Work_Group] +vnd.syncml.dmtnds+xml,application/vnd.syncml.dmtnds+xml,[OMA-DM_Work_Group] +vnd.syncml.dmddf+wbxml,application/vnd.syncml.dmddf+wbxml,[OMA-DM_Work_Group] +vnd.syncml.dm+wbxml,application/vnd.syncml.dm+wbxml,[OMA-DM_Work_Group] +vnd.syncml.dm+xml,application/vnd.syncml.dm+xml,[Bindu_Rama_Rao][OMA-DM_Work_Group] +vnd.syncml.ds.notification,application/vnd.syncml.ds.notification,[OMA_Data_Synchronization_Working_Group] +vnd.syncml+xml,application/vnd.syncml+xml,[OMA_Data_Synchronization_Working_Group] +vnd.tao.intent-module-archive,application/vnd.tao.intent-module-archive,[Daniel_Shelton] +vnd.tcpdump.pcap,application/vnd.tcpdump.pcap,[Guy_Harris][Glen_Turner] +vnd.tmobile-livetv,application/vnd.tmobile-livetv,[Nicolas_Helin] +vnd.trid.tpt,application/vnd.trid.tpt,[Frank_Cusack] +vnd.triscape.mxs,application/vnd.triscape.mxs,[Steven_Simonoff] +vnd.trueapp,application/vnd.trueapp,[J._Scott_Hepler] +vnd.truedoc,application/vnd.truedoc,[Brad_Chase] +vnd.ubisoft.webplayer,application/vnd.ubisoft.webplayer,[Martin_Talbot] +vnd.ufdl,application/vnd.ufdl,[Dave_Manning] +vnd.uiq.theme,application/vnd.uiq.theme,[Tim_Ocock] +vnd.umajin,application/vnd.umajin,[Jamie_Riden] +vnd.unity,application/vnd.unity,[Unity3d] +vnd.uoml+xml,application/vnd.uoml+xml,[Arne_Gerdes] +vnd.uplanet.alert,application/vnd.uplanet.alert,[Bruce_Martin] +vnd.uplanet.alert-wbxml,application/vnd.uplanet.alert-wbxml,[Bruce_Martin] +vnd.uplanet.bearer-choice,application/vnd.uplanet.bearer-choice,[Bruce_Martin] +vnd.uplanet.bearer-choice-wbxml,application/vnd.uplanet.bearer-choice-wbxml,[Bruce_Martin] +vnd.uplanet.cacheop,application/vnd.uplanet.cacheop,[Bruce_Martin] +vnd.uplanet.cacheop-wbxml,application/vnd.uplanet.cacheop-wbxml,[Bruce_Martin] +vnd.uplanet.channel,application/vnd.uplanet.channel,[Bruce_Martin] +vnd.uplanet.channel-wbxml,application/vnd.uplanet.channel-wbxml,[Bruce_Martin] +vnd.uplanet.list,application/vnd.uplanet.list,[Bruce_Martin] +vnd.uplanet.listcmd,application/vnd.uplanet.listcmd,[Bruce_Martin] +vnd.uplanet.listcmd-wbxml,application/vnd.uplanet.listcmd-wbxml,[Bruce_Martin] +vnd.uplanet.list-wbxml,application/vnd.uplanet.list-wbxml,[Bruce_Martin] +vnd.uplanet.signal,application/vnd.uplanet.signal,[Bruce_Martin] +vnd.vcx,application/vnd.vcx,[Taisuke_Sugimoto] +vnd.vd-study,application/vnd.vd-study,[Luc_Rogge] +vnd.vectorworks,application/vnd.vectorworks,[Lyndsey_Ferguson][Biplab_Sarkar] +vnd.verimatrix.vcas,application/vnd.verimatrix.vcas,[Petr_Peterka] +vnd.vidsoft.vidconference,application/vnd.vidsoft.vidconference,[Robert_Hess] +vnd.visio,application/vnd.visio,[Troy_Sandal] +vnd.visionary,application/vnd.visionary,[Gayatri_Aravindakumar] +vnd.vividence.scriptfile,application/vnd.vividence.scriptfile,[Mark_Risher] +vnd.vsf,application/vnd.vsf,[Delton_Rowe] +vnd.wap.sic,application/vnd.wap.sic,[WAP-Forum] +vnd.wap.slc,application/vnd.wap-slc,[WAP-Forum] +vnd.wap.wbxml,application/vnd.wap-wbxml,[Peter_Stark] +vnd.wap.wmlc,application/vnd-wap-wmlc,[Peter_Stark] +vnd.wap.wmlscriptc,application/vnd.wap.wmlscriptc,[Peter_Stark] +vnd.webturbo,application/vnd.webturbo,[Yaser_Rehem] +vnd.wfa.p2p,application/vnd.wfa.p2p,[Mick_Conley] +vnd.wfa.wsc,application/vnd.wfa.wsc,[Wi-Fi_Alliance] +vnd.windows.devicepairing,application/vnd.windows.devicepairing,[Priya_Dandawate] +vnd.wmc,application/vnd.wmc,[Thomas_Kjornes] +vnd.wmf.bootstrap,application/vnd.wmf.bootstrap,[Thinh_Nguyenphu][Prakash_Iyer] +vnd.wolfram.mathematica,application/vnd.wolfram.mathematica,[Wolfram] +vnd.wolfram.mathematica.package,application/vnd.wolfram.mathematica.package,[Wolfram] +vnd.wolfram.player,application/vnd.wolfram.player,[Wolfram] +vnd.wordperfect,application/vnd.wordperfect,[Kim_Scarborough] +vnd.wqd,application/vnd.wqd,[Jan_Bostrom] +vnd.wrq-hp3000-labelled,application/vnd.wrq-hp3000-labelled,[Chris_Bartram] +vnd.wt.stf,application/vnd.wt.stf,[Bill_Wohler] +vnd.wv.csp+xml,application/vnd.wv.csp+xml,[John_Ingi_Ingimundarson] +vnd.wv.csp+wbxml,application/vnd.wv.csp+wbxml,[Matti_Salmi] +vnd.wv.ssp+xml,application/vnd.wv.ssp+xml,[John_Ingi_Ingimundarson] +vnd.xacml+json,application/vnd.xacml+json,[David_Brossard] +vnd.xara,application/vnd.xara,[David_Matthewman] +vnd.xfdl,application/vnd.xfdl,[Dave_Manning] +vnd.xfdl.webform,application/vnd.xfdl.webform,[Michael_Mansell] +vnd.xmi+xml,application/vnd.xmi+xml,[Fred_Waskiewicz] +vnd.xmpie.cpkg,application/vnd.xmpie.cpkg,[Reuven_Sherwin] +vnd.xmpie.dpkg,application/vnd.xmpie.dpkg,[Reuven_Sherwin] +vnd.xmpie.plan,application/vnd.xmpie.plan,[Reuven_Sherwin] +vnd.xmpie.ppkg,application/vnd.xmpie.ppkg,[Reuven_Sherwin] +vnd.xmpie.xlim,application/vnd.xmpie.xlim,[Reuven_Sherwin] +vnd.yamaha.hv-dic,application/vnd.yamaha.hv-dic,[Tomohiro_Yamamoto] +vnd.yamaha.hv-script,application/vnd.yamaha.hv-script,[Tomohiro_Yamamoto] +vnd.yamaha.hv-voice,application/vnd.yamaha.hv-voice,[Tomohiro_Yamamoto] +vnd.yamaha.openscoreformat.osfpvg+xml,application/vnd.yamaha.openscoreformat.osfpvg+xml,[Mark_Olleson] +vnd.yamaha.openscoreformat,application/vnd.yamaha.openscoreformat,[Mark_Olleson] +vnd.yamaha.remote-setup,application/vnd.yamaha.remote-setup,[Takehiro_Sukizaki] +vnd.yamaha.smaf-audio,application/vnd.yamaha.smaf-audio,[Keiichi_Shinoda] +vnd.yamaha.smaf-phrase,application/vnd.yamaha.smaf-phrase,[Keiichi_Shinoda] +vnd.yamaha.through-ngn,application/vnd.yamaha.through-ngn,[Takehiro_Sukizaki] +vnd.yamaha.tunnel-udpencap,application/vnd.yamaha.tunnel-udpencap,[Takehiro_Sukizaki] +vnd.yellowriver-custom-menu,application/vnd.yellowriver-custom-menu,[Mr._Yellow] +vnd.zul,application/vnd.zul,[Rene_Grothmann] +vnd.zzazz.deck+xml,application/vnd.zzazz.deck+xml,[Micheal_Hewett] +voicexml+xml,,[RFC4267] +vq-rtcpxr,,[RFC6035] +watcherinfo+xml,,[RFC3858] +whoispp-query,,[RFC2957] +whoispp-response,,[RFC2958] +widget,,[W3C][Steven_Pemberton][ISO/IEC 19757-2:2003/FDAM-1] +wita,application/wita,[Larry_Campbell] +wordperfect5.1,application/wordperfect5.1,[Paul_Lindner] +wsdl+xml,application/wsdl+xml,[W3C] +wspolicy+xml,application/wspolicy+xml,[W3C] +x400-bp,,[RFC1494] +xacml+xml,application/xacml+xml,[RFC7061] +xcap-att+xml,,[RFC4825] +xcap-caps+xml,,[RFC4825] +xcap-diff+xml,,[RFC5874] +xcap-el+xml,,[RFC4825] +xcap-error+xml,,[RFC4825] +xcap-ns+xml,,[RFC4825] +xcon-conference-info-diff+xml,,[draft-ietf-xcon-event-package] +xcon-conference-info+xml,,[draft-ietf-xcon-event-package] +xenc+xml,application/xenc+xml,[Joseph_Reagle][XENC_Working_Group] +xhtml-voice+xml - OBSOLETE,,[draft-mccobb-xplusv-media-type] +xhtml+xml,,[RFC3236] +xml,,[RFC3023] +xml-dtd,,[RFC3023] +xml-external-parsed-entity,,[RFC3023] +xmpp+xml,,[RFC3923] +xop+xml,application/xop+xml,[Mark_Nottingham] +xslt+xml,,[W3C][http://www.w3.org/TR/2007/REC-xslt20-20070123/#media-type-registration] +xv+xml,,[RFC4374] +yang,,[RFC6020] +yin+xml,,[RFC6020] +zip,application/zip,[Paul_Lindner] +zlib,,[RFC6713] diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/audio.csv b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/audio.csv new file mode 100644 index 000000000000..bd742ade1d56 --- /dev/null +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/audio.csv @@ -0,0 +1,141 @@ +Name,Template,Reference +1d-interleaved-parityfec,,[RFC6015] +32kadpcm,,[RFC3802][RFC2421] +3gpp,,[RFC3839][RFC6381] +3gpp2,,[RFC4393][RFC6381] +ac3,,[RFC4184] +AMR,,[RFC4867] +AMR-WB,,[RFC4867] +amr-wb,,[RFC4352] +asc,,[RFC6295] +ATRAC-ADVANCED-LOSSLESS,,[RFC5584] +ATRAC-X,,[RFC5584] +ATRAC3,,[RFC5584] +basic,,[RFC2045][RFC2046] +BV16,,[RFC4298] +BV32,,[RFC4298] +clearmode,,[RFC4040] +CN,,[RFC3389] +DAT12,,[RFC3190] +dls,,[RFC4613] +dsr-es201108,,[RFC3557] +dsr-es202050,,[RFC4060] +dsr-es202211,,[RFC4060] +dsr-es202212,,[RFC4060] +DV,,[RFC6469] +DVI4,,[RFC4856] +eac3,,[RFC4598] +encaprtp,audio/encaprtp,[RFC6849] +EVRC,,[RFC4788] +EVRC-QCP,,[RFC3625] +EVRC0,,[RFC4788] +EVRC1,,[RFC4788] +EVRCB,,[RFC5188] +EVRCB0,,[RFC5188] +EVRCB1,,[RFC4788] +EVRCNW,audio/EVRCNW,[RFC6884] +EVRCNW0,audio/EVRCNW0,[RFC6884] +EVRCNW1,audio/EVRCNW1,[RFC6884] +EVRCWB,,[RFC5188] +EVRCWB0,,[RFC5188] +EVRCWB1,,[RFC5188] +example,,[RFC4735] +fwdred,,[RFC6354] +G719,,"[RFC5404][RFC Errata + 3245]" +G722,,[RFC4856] +G7221,,[RFC5577] +G723,,[RFC4856] +G726-16,,[RFC4856] +G726-24,,[RFC4856] +G726-32,,[RFC4856] +G726-40,,[RFC4856] +G728,,[RFC4856] +G729,,[RFC4856] +G7291,,[RFC4749][RFC5459] +G729D,,[RFC4856] +G729E,,[RFC4856] +GSM,,[RFC4856] +GSM-EFR,,[RFC4856] +GSM-HR-08,,[RFC5993] +iLBC,,[RFC3952] +ip-mr_v2.5,,[RFC6262] +L8,,[RFC4856] +L16,,[RFC4856] +L20,,[RFC3190] +L24,,[RFC3190] +LPC,,[RFC4856] +mobile-xmf,,[RFC4723] +MPA,,[RFC3555] +mp4,,[RFC4337][RFC6381] +MP4A-LATM,,[RFC6416] +mpa-robust,,[RFC5219] +mpeg,,[RFC3003] +mpeg4-generic,,[RFC3640][RFC5691][RFC6295] +ogg,,[RFC5334] +parityfec,,[RFC5109] +PCMA,,[RFC4856] +PCMA-WB,,[RFC5391] +PCMU,,[RFC4856] +PCMU-WB,,[RFC5391] +prs.sid,audio/prs.sid,[Linus_Walleij] +QCELP,,[RFC3555][RFC3625] +raptorfec,,[RFC6682] +RED,,[RFC3555] +rtp-enc-aescm128,audio/rtp-enc-aescm128,[ThreeGPP] +rtploopback,audio/rtploopback,[RFC6849] +rtp-midi,,[RFC6295] +rtx,,[RFC4588] +SMV,,[RFC3558] +SMV0,,[RFC3558] +SMV-QCP,,[RFC3625] +sp-midi,audio/sp-midi,[Timo_Kosonen][Tom_White] +speex,,[RFC5574] +t140c,,[RFC4351] +t38,,[RFC4612] +telephone-event,,[RFC4733] +tone,,[RFC4733] +UEMCLIP,,[RFC5686] +ulpfec,,[RFC5109] +VDVI,,[RFC4856] +VMR-WB,,[RFC4348][RFC4424] +vnd.3gpp.iufp,audio/vnd.3gpp.iufp,[Thomas_Belling] +vnd.4SB,audio/vnd.4SB,[Serge_De_Jaham] +vnd.audiokoz,audio/vnd.audiokoz,[Vicki_DeBarros] +vnd.CELP,audio/vnd.CELP,[Serge_De_Jaham] +vnd.cisco.nse,audio/vnd.cisco.nse,[Rajesh_Kumar] +vnd.cmles.radio-events,audio/vnd.cmles.radio-events,[Jean-Philippe_Goulet] +vnd.cns.anp1,audio/vnd.cns.anp1,[Ann_McLaughlin] +vnd.cns.inf1,audio/vnd.cns.inf1,[Ann_McLaughlin] +vnd.dece.audio,audio/vnd.dece.audio,[Michael_A_Dolan] +vnd.digital-winds,audio/vnd.digital-winds,[Armands_Strazds] +vnd.dlna.adts,audio/vnd.dlna.adts,[Edwin_Heredia] +vnd.dolby.heaac.1,audio/vnd.dolby.heaac.1,[Steve_Hattersley] +vnd.dolby.heaac.2,audio/vnd.dolby.heaac.2,[Steve_Hattersley] +vnd.dolby.mlp,audio/vnd.dolby.mlp,[Mike_Ward] +vnd.dolby.mps,audio/vnd.dolby.mps,[Steve_Hattersley] +vnd.dolby.pl2,audio/vnd.dolby.pl2,[Steve_Hattersley] +vnd.dolby.pl2x,audio/vnd.dolby.pl2x,[Steve_Hattersley] +vnd.dolby.pl2z,audio/vnd.dolby.pl2z,[Steve_Hattersley] +vnd.dolby.pulse.1,audio/vnd.dolby.pulse.1,[Steve_Hattersley] +vnd.dra,audio/vnd.dra,[Jiang_Tian] +vnd.dts,audio/vnd.dts,[William_Zou] +vnd.dts.hd,audio/vnd.dts.hd,[William_Zou] +vnd.dvb.file,audio/vnd.dvb.file,[Peter_Siebert] +vnd.everad.plj,audio/vnd.everad.plj,[Shay_Cicelsky] +vnd.hns.audio,audio/vnd.hns.audio,[Swaminathan] +vnd.lucent.voice,audio/vnd.lucent.voice,[Greg_Vaudreuil] +vnd.ms-playready.media.pya,audio/vnd.ms-playready.media.pya,[Steve_DiAcetis] +vnd.nokia.mobile-xmf,audio/vnd.nokia.mobile-xmf,[Nokia] +vnd.nortel.vbk,audio/vnd.nortel.vbk,[Glenn_Parsons] +vnd.nuera.ecelp4800,audio/vnd.nuera.ecelp4800,[Michael_Fox] +vnd.nuera.ecelp7470,audio/vnd.nuera.ecelp7470,[Michael_Fox] +vnd.nuera.ecelp9600,audio/vnd.nuera.ecelp9600,[Michael_Fox] +vnd.octel.sbc,audio/vnd.octel.sbc,[Greg_Vaudreuil] +vnd.qcelp - DEPRECATED - Please see: audio/qcelp,audio/vnd.qcelp,[RFC3625] +vnd.rhetorex.32kadpcm,audio/vnd.rhetorex.32kadpcm,[Greg_Vaudreuil] +vnd.rip,audio/vnd.rip,[Martin_Dawe] +vnd.sealedmedia.softseal.mpeg,audio/vnd.sealedmedia.softseal-mpeg,[David_Petersen] +vnd.vmx.cvsd,audio/vnd.vmx.cvsd,[Greg_Vaudreuil] +vorbis,,[RFC5215] +vorbis-config,,[RFC5215] diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/image.csv b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/image.csv new file mode 100644 index 000000000000..3a703869c931 --- /dev/null +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/image.csv @@ -0,0 +1,46 @@ +Name,Template,Description,Reference +cgm,image/cgm,Computer Graphics Metafile,[Alan_Francis] +example,,,[RFC4735] +fits,,,[RFC4047] +g3fax,,,[RFC1494] +gif,,,[RFC2045][RFC2046] +ief,,Image Exchange Format,[RFC1314] +jp2,image/jp2,,[RFC3745] +jpeg,,,[RFC2045][RFC2046] +jpm,image/jpm,,[RFC3745] +jpx,image/jpx,,[RFC3745] +ktx,,,[Mark_Callow][Khronos][http://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/#mimeregistration] +naplps,image/naplps,,[Ilya_Ferber] +png,image/png,,[Glenn_Randers-Pehrson] +prs.btif,image/prs.btif,,[Ben_Simon] +prs.pti,image/prs.pti,,[Juern_Laun] +pwg-raster,image/pwg-raster,,[Michael_Sweet] +svg+xml,,,[W3C][http://www.w3.org/TR/SVG/mimereg.html] +t38,,,[RFC3362] +tiff,,Tag Image File Format,[RFC3302] +tiff-fx,,Tag Image File Format Fax eXtended,[RFC3950] +vnd.adobe.photoshop,image/vnd.adobe.photoshop,,[Kim_Scarborough] +vnd.airzip.accelerator.azv,image/vnd.airzip.accelerator.azv,,[Gary_Clueit] +vnd.cns.inf2,image/vnd.cns.inf2,,[Ann_McLaughlin] +vnd.dece.graphic,image/vnd.dece.graphic,,[Michael_A_Dolan] +vnd.djvu,image/vnd-djvu,,[Leon_Bottou] +vnd.dwg,image/vnd.dwg,,[Jodi_Moline] +vnd.dxf,image/vnd.dxf,,[Jodi_Moline] +vnd.dvb.subtitle,image/vnd.dvb.subtitle,,[Peter_Siebert][Michael_Lagally] +vnd.fastbidsheet,image/vnd.fastbidsheet,,[Scott_Becker] +vnd.fpx,image/vnd.fpx,,[Marc_Douglas_Spencer] +vnd.fst,image/vnd.fst,,[Arild_Fuldseth] +vnd.fujixerox.edmics-mmr,image/vnd.fujixerox.edmics-mmr,,[Masanori_Onda] +vnd.fujixerox.edmics-rlc,image/vnd.fujixerox.edmics-rlc,,[Masanori_Onda] +vnd.globalgraphics.pgb,image/vnd.globalgraphics.pgb,,[Martin_Bailey] +vnd.microsoft.icon,image/vnd.microsoft.icon,,[Simon_Butcher] +vnd.mix,image/vnd.mix,,[Saveen_Reddy] +vnd.ms-modi,image/vnd.ms-modi,,[Gregory_Vaughan] +vnd.net-fpx,image/vnd.net-fpx,,[Marc_Douglas_Spencer] +vnd.radiance,image/vnd.radiance,,[Randolph_Fritz][Greg_Ward] +vnd.sealed.png,image/vnd.sealed-png,,[David_Petersen] +vnd.sealedmedia.softseal.gif,image/vnd.sealedmedia.softseal-gif,,[David_Petersen] +vnd.sealedmedia.softseal.jpg,image/vnd.sealedmedia.softseal-jpg,,[David_Petersen] +vnd.svf,image/vnd-svf,,[Jodi_Moline] +vnd.wap.wbmp,image/vnd-wap-wbmp,,[Peter_Stark] +vnd.xiff,image/vnd.xiff,,[Steven_Martin] diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/message.csv b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/message.csv new file mode 100644 index 000000000000..eac9bba08f3f --- /dev/null +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/message.csv @@ -0,0 +1,22 @@ +Name,Template,Reference +CPIM,,[RFC3862] +delivery-status,,[RFC1894] +disposition-notification,,[RFC3798] +example,,[RFC4735] +external-body,,[RFC2045][RFC2046] +feedback-report,,[RFC5965] +global,,[RFC6532] +global-delivery-status,,[RFC6533] +global-disposition-notification,,[RFC6533] +global-headers,,[RFC6533] +http,message/http,[RFC-ietf-httpbis-p1-messaging-26] +imdn+xml,,[RFC5438] +news - OBSOLETE,message/news,[RFC5537][Henry_Spencer] +partial,,[RFC2045][RFC2046] +rfc822,,[RFC2045][RFC2046] +s-http,,[RFC2660] +sip,,[RFC3261] +sipfrag,,[RFC3420] +tracking-status,,[RFC3886] +vnd.si.simp - OBSOLETE,message/vnd.si.simp,[Nicholas_Parks_Young] +vnd.wfa.wsc,message/vnd.wfa.wsc,[Mick_Conley] diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/model.csv b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/model.csv new file mode 100644 index 000000000000..d6121c3d611d --- /dev/null +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/model.csv @@ -0,0 +1,18 @@ +Name,Template,Reference +example,,[RFC4735] +iges,model/iges,[Curtis_Parks] +mesh,,[RFC2077] +vnd.collada+xml,model/vnd.collada+xml,[James_Riordon] +vnd.dwf,model/vnd-dwf,[Jason_Pratt] +vnd.flatland.3dml,model/vnd.flatland.3dml,[Michael_Powers] +vnd.gdl,model/vnd.gdl,[Attila_Babits] +vnd.gs-gdl,model/vnd.gs-gdl,[Attila_Babits] +vnd.gtw,model/vnd.gtw,[Yutaka_Ozaki] +vnd.moml+xml,model/vnd.moml+xml,[Christopher_Brooks] +vnd.mts,model/vnd.mts,[Boris_Rabinovitch] +vnd.parasolid.transmit.binary,model/vnd.parasolid.transmit-binary,[Parasolid] +vnd.parasolid.transmit.text,model/vnd.parasolid.transmit-text,[Parasolid] +vnd.vtu,model/vnd.vtu,[Boris_Rabinovitch] +vrml,,[RFC2077] +x3d-vrml,model/x3d-vrml,[Web3D][Web3DX3D] +x3d+xml,model/x3d+xml,[Web3D][Web3DX3D] diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/multipart.csv b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/multipart.csv new file mode 100644 index 000000000000..1569172c1740 --- /dev/null +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/multipart.csv @@ -0,0 +1,15 @@ +Name,Template,Reference +alternative,,[RFC2045][RFC2046] +appledouble,multipart/appledouble,[Patrik_Faltstrom] +byteranges,multipart/byteranges,[RFC-ietf-httpbis-p5-range-26] +digest,,[RFC2045][RFC2046] +encrypted,,[RFC1847] +example,,[RFC4735] +form-data,,[RFC2388] +header-set,multipart/header-set,[Dave_Crocker] +mixed,,[RFC2045][RFC2046] +parallel,,[RFC2045][RFC2046] +related,,[RFC2387] +report,,[RFC6522] +signed,,[RFC1847] +voice-message,,[RFC2421][RFC2423] diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/text.csv b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/text.csv new file mode 100644 index 000000000000..65f9b67bc7ee --- /dev/null +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/text.csv @@ -0,0 +1,68 @@ +Name,Template,Reference +1d-interleaved-parityfec,,[RFC6015] +calendar,,[RFC5545] +css,,[RFC2318] +csv,text/csv,[RFC4180][RFC7111] +directory - DEPRECATED - Please see:,,[RFC2425][RFC6350] +dns,,[RFC4027] +ecmascript - OBSOLETE,,[RFC4329] +encaprtp,text/encaprtp,[RFC6849] +enriched,,[RFC1896] +example,,[RFC4735] +fwdred,,[RFC6354] +grammar-ref-list,,[RFC6787] +html,text/html,[Michael_TM_Smith][W3C] +javascript - OBSOLETE,,[RFC4329] +jcr-cnd,text/jcr-cnd,[Peeter_Piegaze] +mizar,text/mizar,[Jesse_Alama] +n3,text/n3,[Eric_Prudhommeaux][W3C] +parameters,text/parameters,[RFC-ietf-mmusic-rfc2326bis-40] +parityfec,,[RFC5109] +plain,,[RFC2046][RFC3676][RFC5147] +provenance-notation,,[Ivan_Herman][W3C] +prs.fallenstein.rst,text/prs.fallenstein.rst,[Benja_Fallenstein] +prs.lines.tag,text/prs.lines.tag,[John_Lines] +raptorfec,,[RFC6682] +RED,,[RFC4102] +rfc822-headers,,[RFC6522] +richtext,,[RFC2045][RFC2046] +rtf,text/rtf,[Paul_Lindner] +rtp-enc-aescm128,text/rtp-enc-aescm128,[ThreeGPP] +rtploopback,text/rtploopback,[RFC6849] +rtx,,[RFC4588] +sgml,,[RFC1874] +t140,,[RFC4103] +tab-separated-values,text/tab-separated-values,[Paul_Lindner] +troff,,[RFC4263] +turtle,text/turtle,[Eric_Prudhommeaux][W3C] +ulpfec,,[RFC5109] +uri-list,,[RFC2483] +vcard,,[RFC6350] +vnd.a,text/vnd-a,[Regis_Dehoux] +vnd.abc,text/vnd.abc,[Steve_Allen] +vnd.curl,text/vnd-curl,[Robert_Byrnes] +vnd.debian.copyright,text/vnd.debian.copyright,[Charles_Plessy] +vnd.DMClientScript,text/vnd.DMClientScript,[Dan_Bradley] +vnd.dvb.subtitle,text/vnd.dvb.subtitle,[Peter_Siebert][Michael_Lagally] +vnd.esmertec.theme-descriptor,text/vnd.esmertec.theme-descriptor,[Stefan_Eilemann] +vnd.fly,text/vnd.fly,[John-Mark_Gurney] +vnd.fmi.flexstor,text/vnd.fmi.flexstor,[Kari_E._Hurtta] +vnd.graphviz,text/vnd.graphviz,[John_Ellson] +vnd.in3d.3dml,text/vnd.in3d.3dml,[Michael_Powers] +vnd.in3d.spot,text/vnd.in3d.spot,[Michael_Powers] +vnd.IPTC.NewsML,text/vnd.IPTC.NewsML,[IPTC] +vnd.IPTC.NITF,text/vnd.IPTC.NITF,[IPTC] +vnd.latex-z,text/vnd.latex-z,[Mikusiak_Lubos] +vnd.motorola.reflex,text/vnd.motorola.reflex,[Mark_Patton] +vnd.ms-mediapackage,text/vnd.ms-mediapackage,[Jan_Nelson] +vnd.net2phone.commcenter.command,text/vnd.net2phone.commcenter.command,[Feiyu_Xie] +vnd.radisys.msml-basic-layout,,[RFC5707] +vnd.si.uricatalogue - OBSOLETE,text/vnd.si.uricatalogue,[Nicholas_Parks_Young] +vnd.sun.j2me.app-descriptor,text/vnd.sun.j2me.app-descriptor,[Gary_Adams] +vnd.trolltech.linguist,text/vnd.trolltech.linguist,[David_Lee_Lambert] +vnd.wap.si,text/vnd.wap.si,[WAP-Forum] +vnd.wap.sl,text/vnd.wap.sl,[WAP-Forum] +vnd.wap.wml,text/vnd.wap-wml,[Peter_Stark] +vnd.wap.wmlscript,text/vnd.wap.wmlscript,[Peter_Stark] +xml,,[RFC3023] +xml-external-parsed-entity,,[RFC3023] diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/video.csv b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/video.csv new file mode 100644 index 000000000000..189e2cd8fa27 --- /dev/null +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/documentation/mimeTypes/video.csv @@ -0,0 +1,77 @@ +Name,Template,Reference +1d-interleaved-parityfec,,[RFC6015] +3gpp,,[RFC3839][RFC6381] +3gpp2,,[RFC4393][RFC6381] +3gpp-tt,,[RFC4396] +BMPEG,,[RFC3555] +BT656,,[RFC3555] +CelB,,[RFC3555] +DV,,[RFC6469] +encaprtp,video/encaprtp,[RFC6849] +example,,[RFC4735] +H261,,[RFC4587] +H263,,[RFC3555] +H263-1998,,[RFC4629] +H263-2000,,[RFC4629] +H264,,[RFC6184] +H264-RCDO,,[RFC6185] +H264-SVC,,[RFC6190] +iso.segment,video/iso.segment,[David_Singer][ISO-IEC_JTC1] +JPEG,,[RFC3555] +jpeg2000,,[RFC5371][RFC5372] +MJ2,,[RFC3745] +MP1S,,[RFC3555] +MP2P,,[RFC3555] +MP2T,,[RFC3555] +mp4,,[RFC4337][RFC6381] +MP4V-ES,,[RFC6416] +MPV,,[RFC3555] +mpeg,,[RFC2045][RFC2046] +mpeg4-generic,,[RFC3640] +nv,,[RFC4856] +ogg,,[RFC5334] +parityfec,,[RFC5109] +pointer,,[RFC2862] +quicktime,video/quicktime,[RFC6381][Paul_Lindner] +raptorfec,,[RFC6682] +raw,,[RFC4175] +rtp-enc-aescm128,video/rtp-enc-aescm128,[ThreeGPP] +rtploopback,video/rtploopback,[RFC6849] +rtx,,[RFC4588] +SMPTE292M,,[RFC3497] +ulpfec,,[RFC5109] +vc1,,[RFC4425] +vnd.CCTV,video/vnd.CCTV,[http://www.iana.org/assignments/contact-people.htmll#Rottmann] +vnd.dece.hd,video/vnd.dece.hd,[http://www.iana.org/assignments/contact-people.htmll#Dolan] +vnd.dece.mobile,video/vnd.dece.mobile,[http://www.iana.org/assignments/contact-people.htmll#Dolan] +vnd.dece.mp4,video/vnd.dece-mp4,[http://www.iana.org/assignments/contact-people.htmll#Dolan] +vnd.dece.pd,video/vnd.dece.pd,[http://www.iana.org/assignments/contact-people.htmll#Dolan] +vnd.dece.sd,video/vnd.dece.sd,[http://www.iana.org/assignments/contact-people.htmll#Dolan] +vnd.dece.video,video/vnd.dece.video,[http://www.iana.org/assignments/contact-people.htmll#Dolan] +vnd.directv.mpeg,video/vnd.directv-mpeg,[Nathan_Zerbe] +vnd.directv.mpeg-tts,video/vnd.directv.mpeg-tts,[Nathan_Zerbe] +vnd.dlna.mpeg-tts,video/vnd.dlna.mpeg-tts,[Edwin_Heredia] +vnd.dvb.file,video/vnd.dvb.file,[Peter_Siebert][Kevin_Murray] +vnd.fvt,video/vnd.fvt,[Arild_Fuldseth] +vnd.hns.video,video/vnd.hns.video,[Swaminathan] +vnd.iptvforum.1dparityfec-1010,video/vnd.iptvforum.1dparityfec-1010,[Shuji_Nakamura] +vnd.iptvforum.1dparityfec-2005,video/vnd.iptvforum.1dparityfec-2005,[Shuji_Nakamura] +vnd.iptvforum.2dparityfec-1010,video/vnd.iptvforum.2dparityfec-1010,[Shuji_Nakamura] +vnd.iptvforum.2dparityfec-2005,video/vnd.iptvforum.2dparityfec-2005,[Shuji_Nakamura] +vnd.iptvforum.ttsavc,video/vnd.iptvforum.ttsavc,[Shuji_Nakamura] +vnd.iptvforum.ttsmpeg2,video/vnd.iptvforum.ttsmpeg2,[Shuji_Nakamura] +vnd.motorola.video,video/vnd.motorola.video,[Tom_McGinty] +vnd.motorola.videop,video/vnd.motorola.videop,[Tom_McGinty] +vnd.mpegurl,video/vnd-mpegurl,[Heiko_Recktenwald] +vnd.ms-playready.media.pyv,video/vnd.ms-playready.media.pyv,[Steve_DiAcetis] +vnd.nokia.interleaved-multimedia,video/vnd.nokia.interleaved-multimedia,[Petteri_Kangaslampi] +vnd.nokia.videovoip,video/vnd.nokia.videovoip,[Nokia] +vnd.objectvideo,video/vnd.objectvideo,[John_Clark] +vnd.radgamettools.bink,video/vnd.radgamettools.bink,[Henrik_Andersson] +vnd.radgamettools.smacker,video/vnd.radgamettools.smacker,[Henrik_Andersson] +vnd.sealed.mpeg1,video/vnd.sealed.mpeg1,[David_Petersen] +vnd.sealed.mpeg4,video/vnd.sealed.mpeg4,[David_Petersen] +vnd.sealed.swf,video/vnd.sealed-swf,[David_Petersen] +vnd.sealedmedia.softseal.mov,video/vnd.sealedmedia.softseal-mov,[David_Petersen] +vnd.uvvu.mp4,video/vnd.uvvu-mp4,[http://www.iana.org/assignments/contact-people.htmll#Dolan] +vnd.vivo,video/vnd-vivo,[John_Wolfe]