associationservice.java

来自「jdic,显著提高swing性能的插件」· Java 代码 · 共 418 行 · 第 1/2 页

JAVA
418
字号
            throw new IllegalArgumentException("The specified URL is null");        }                Association assoc = null;        String mimeType = appAssocReader.getMimeTypeByURL(url);        if (mimeType != null) {            // Get association by mime type.            assoc = getMimeTypeAssociation(mimeType);        }                if (assoc == null) {            // Get association by file extension.            String fileExt = AppUtility.getFileExtensionByURL(url);            if (fileExt != null) {                assoc = getFileExtensionAssociation(fileExt);            }        }                    return assoc;    }              /**     * Registers the given association in the user specific level.     * <p>     * <ul>     *   <li> For Microsoft Windows platforms: the file extension list and MIME      *        type can't both be null. If any of the description, icon file name, action      *        list fields is not null, the file extension list couldn't be empty.     *        <p>      *        For Windows NT, Windows Me/98/95: the registration is always system      *        wide, since all users share the same association information.     *        <p>      *        For Windows 2000 and Windows XP: the registration is only applied to      *        this specific user.     *      *   <li> For Gnome/Unix platforms: both the name and MIME type fields need to      *        be specified to perform this operation.     * </ul>     *      * @param assoc a given <code>Association</code> object.     * @throws IllegalArgumentException if the given association is not valid for      *         this operation.     * @throws AssociationAlreadyRegisteredException if the given association      *         already exists in the system.     * @throws RegisterFailedException if the given association fails to be      *         registered in the system.     */    public void registerUserAssociation(Association assoc)             throws AssociationAlreadyRegisteredException, RegisterFailedException {        if (assoc == null) {            throw new IllegalArgumentException("The specified association is null");        }        // Check whether the specified association is valid for registration.        try {            appAssocWriter.checkAssociationValidForRegistration(assoc);         } catch (IllegalArgumentException e) {            throw e;        }                // Check whether the specified association already exists.        if (appAssocWriter.isAssociationExist(assoc, AppAssociationWriter.USER_LEVEL)) {            throw new AssociationAlreadyRegisteredException("Assocation already exists!");          }                    // Perform registration.                        appAssocWriter.registerAssociation(assoc, AppAssociationWriter.USER_LEVEL);    }                    /**     * Unregisters the given association in the user specific level.     * <p>     * <ul>     *   <li> For Microsoft Windows platforms: either the MIME type or the file extension     *        list field needs to be specified to perform this operation.     *        <p>     *        For Windows NT, Windows Me/98/95: the unregistration is always system wide,      *        since all users share the same association information.     *        <p>     *        For Windows 2000 and Windows XP: the unregistration is only applied to      *        this specific user.     *     *   <li> For Gnome/Unix platforms: only the name field needs to be specified to      *        perform this operation.     * </ul>     * <P>     *      * @param assoc a given Association object.     * @throws IllegalArgumentException if the given association is not valid for      *         this operation.     * @throws AssociationNotRegisteredException if the given association doesn't      *         exist in the system.     * @throws RegisterFailedException if the given association fails to be      *         unregistered in the system.        */    public void unregisterUserAssociation(Association assoc)             throws AssociationNotRegisteredException, RegisterFailedException {        if (assoc == null) {            throw new IllegalArgumentException("The specified association is null");        }        // Check whether the specified association is valid for unregistration.        try {            appAssocWriter.checkAssociationValidForUnregistration(assoc);        } catch (IllegalArgumentException e) {            throw e;        }                // Check whether the specified association not exists.        if (!appAssocWriter.isAssociationExist(assoc, AppAssociationWriter.USER_LEVEL)) {            throw new AssociationNotRegisteredException("Assocation not exists!");          }                    // Perform unregistration.        appAssocWriter.unregisterAssociation(assoc, AppAssociationWriter.USER_LEVEL);    }    /**     * Registers the given association in the system level.     * <p>     * <ul>     *   <li> For Microsoft Windows platforms: the file extension list and MIME      *        type can't all be null. If any of the description, icon file name, action     *        list fields is not null, the file extension list couldn't be empty.     *        <p>      *        For Windows XP: the user needs the administrator permission to      *        access the system association information in the registry.     *      *  <li>  For Gnome/Unix platforms: both the name and MIME type fields need to      *        be specified to perform this operation.     * </ul>     *      * @param assoc a given <code>Association</code> object.     * @throws IllegalArgumentException if the given association is not valid for      *         this operation.     * @throws AssociationAlreadyRegisteredException if the given association      *         already exists in the system.     * @throws RegisterFailedException if the given association fails to be      *         registered in the system.     */    public void registerSystemAssociation(Association assoc)             throws AssociationAlreadyRegisteredException, RegisterFailedException {        if (assoc == null) {            throw new IllegalArgumentException("The specified association is null");        }        // Check whether the specified association is valid for registration.        try {            appAssocWriter.checkAssociationValidForRegistration(assoc);        } catch (IllegalArgumentException e) {            throw e;        }                // Check whether the specified association already exists.        if (appAssocWriter.isAssociationExist(assoc, AppAssociationWriter.SYSTEM_LEVEL)) {            throw new AssociationAlreadyRegisteredException("Assocation already exists!");          }                    // Perform registration.        appAssocWriter.registerAssociation(assoc, AppAssociationWriter.SYSTEM_LEVEL);    }    /**     * Unregisters the given association in the system level.     * <p>     * <ul>     *   <li> For Microsoft Windows platforms: either the MIME type or the file extension     *        list field needs to be specified to perform this operation.     *        <p>     *        For Windows XP: the user needs the administrator permission to access the      *        system association information in the registry.     *     *   <li> For Gnome/Unix platforms: only the name field needs to be specified to      *        perform this operation.     * </ul>     * <P>     *      * @param assoc a given Association object.     * @throws IllegalArgumentException if the given association is not valid for      *         this operation.     * @throws AssociationNotRegisteredException if the given association doesn't      *         exist in the system.     * @throws RegisterFailedException if the given association fails to be      *         unregistered in the system.        */    public void unregisterSystemAssociation(Association assoc)        throws AssociationNotRegisteredException, RegisterFailedException {        if (assoc == null) {            throw new IllegalArgumentException("The specified association is null");        }        // Check whether the specified association is valid for unregistration.        try {            appAssocWriter.checkAssociationValidForUnregistration(assoc);         } catch (IllegalArgumentException e) {            throw e;        }                // Check whether the specified association not exists.        if (!appAssocWriter.isAssociationExist(assoc, AppAssociationWriter.SYSTEM_LEVEL)) {            throw new AssociationNotRegisteredException("Assocation not existed!");          }                    appAssocWriter.unregisterAssociation(assoc, AppAssociationWriter.SYSTEM_LEVEL);    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?