/** * Hook method for restoring widget values to the values that they held * last time this wizard was used to completion. */ @Override protected void restoreWidgetValues() { if (!((JarPackageWizard)getWizard()).isInitializingFromJarPackage()) initializeJarPackage(); fExportClassFilesCheckbox.setSelection(fJarPackage.areClassFilesExported()); fExportOutputFoldersCheckbox.setSelection(fJarPackage.areOutputFoldersExported()); fExportJavaFilesCheckbox.setSelection(fJarPackage.areJavaFilesExported()); super.restoreWidgetValues(); // options if (fExportRefactoringsCheckbox != null) fExportRefactoringsCheckbox.setSelection(fJarPackage.isRefactoringAware()); fCompressCheckbox.setSelection(fJarPackage.isCompressed()); fIncludeDirectoryEntriesCheckbox.setSelection(fJarPackage.areDirectoryEntriesIncluded()); fOverwriteCheckbox.setSelection(fJarPackage.allowOverwrite()); }
/** * Tells whether this JAR package data can be used to generate * a valid JAR. * * @return <code>true</code> if the JAR Package info is valid */ public boolean isValid() { return (areGeneratedFilesExported() || areJavaFilesExported()) && getElements() != null && getElements().length > 0 && getAbsoluteJarLocation() != null && isManifestAccessible() && isMainClassValid(new BusyIndicatorRunnableContext()); }
private void xmlReadManifest(JarPackageData jarPackage, Element element) throws java.io.IOException { if (element.getNodeName().equals("manifest")) { //$NON-NLS-1$ jarPackage.setManifestVersion(element.getAttribute("manifestVersion")); //$NON-NLS-1$ jarPackage.setUsesManifest(getBooleanAttribute(element, "usesManifest")); //$NON-NLS-1$ jarPackage.setReuseManifest(getBooleanAttribute(element, "reuseManifest")); //$NON-NLS-1$ jarPackage.setSaveManifest(getBooleanAttribute(element,"saveManifest")); //$NON-NLS-1$ jarPackage.setGenerateManifest(getBooleanAttribute(element, "generateManifest")); //$NON-NLS-1$ jarPackage.setManifestLocation(Path.fromPortableString(element.getAttribute("manifestLocation"))); //$NON-NLS-1$ jarPackage.setManifestMainClass(getMainClass(element)); xmlReadSealingInfo(jarPackage, element); } }
protected boolean canBeExported(boolean hasErrors, boolean hasWarnings) throws CoreException { return (!hasErrors && !hasWarnings) || (hasErrors && fJarPackage.areErrorsExported()) || (hasWarnings && fJarPackage.exportWarnings()); }
private boolean mustUseSourceFolderHierarchy() { return fJarPackage.useSourceFolderHierarchy() && fJarPackage.areJavaFilesExported() && !fJarPackage.areGeneratedFilesExported(); } }
/** * Hook method for restoring widget values to the values that they held * last time this wizard was used to completion. */ protected void restoreWidgetValues() { if (!((JarPackageWizard)getWizard()).isInitializingFromJarPackage()) initializeJarPackage(); fExportWarningsCheckbox.setSelection(fJarPackage.exportWarnings()); fExportErrorsCheckbox.setSelection(fJarPackage.areErrorsExported()); fBuildIfNeededCheckbox.setSelection(fJarPackage.isBuildingIfNeeded()); fUseSourceFoldersCheckbox.setSelection(fJarPackage.useSourceFolderHierarchy()); fSaveDescriptionCheckbox.setSelection(fJarPackage.isDescriptionSaved()); fDescriptionFileText.setText(fJarPackage.getDescriptionLocation().toString()); }
private void xmlWriteOptions(JarPackageData jarPackage, Document document, Element xmlJarDesc) throws DOMException { Element options= document.createElement("options"); //$NON-NLS-1$ xmlJarDesc.appendChild(options); options.setAttribute("overwrite", "" + jarPackage.allowOverwrite()); //$NON-NLS-2$ //$NON-NLS-1$ options.setAttribute("compress", "" + jarPackage.isCompressed()); //$NON-NLS-2$ //$NON-NLS-1$ options.setAttribute("exportErrors", "" + jarPackage.areErrorsExported()); //$NON-NLS-2$ //$NON-NLS-1$ options.setAttribute("exportWarnings", "" + jarPackage.exportWarnings()); //$NON-NLS-2$ //$NON-NLS-1$ options.setAttribute("saveDescription", "" + jarPackage.isDescriptionSaved()); //$NON-NLS-2$ //$NON-NLS-1$ options.setAttribute("descriptionLocation", jarPackage.getDescriptionLocation().toPortableString()); //$NON-NLS-1$ options.setAttribute("useSourceFolders", "" + jarPackage.useSourceFolderHierarchy()); //$NON-NLS-2$ //$NON-NLS-1$ options.setAttribute("buildIfNeeded", "" + jarPackage.isBuildingIfNeeded()); //$NON-NLS-2$ //$NON-NLS-1$ options.setAttribute("includeDirectoryEntries", "" + jarPackage.areDirectoryEntriesIncluded()); //$NON-NLS-1$//$NON-NLS-2$ options.setAttribute("storeRefactorings", "" + jarPackage.isRefactoringAware()); //$NON-NLS-1$//$NON-NLS-2$ }
/** * Stores the widget values in the JAR package. */ @Override protected void updateModel() { if (getControl() == null) return; // source if (fExportClassFilesCheckbox.getSelection() && !fJarPackage.areClassFilesExported()) fExportOutputFoldersCheckbox.setSelection(false); if (fExportOutputFoldersCheckbox.getSelection() && !fJarPackage.areOutputFoldersExported()) fExportClassFilesCheckbox.setSelection(false); fJarPackage.setExportClassFiles(fExportClassFilesCheckbox.getSelection()); fJarPackage.setExportOutputFolders(fExportOutputFoldersCheckbox.getSelection()); fJarPackage.setExportJavaFiles(fExportJavaFilesCheckbox.getSelection()); fJarPackage.setElements(getSelectedElements()); super.updateModel(); // options if (fExportRefactoringsCheckbox != null) fJarPackage.setRefactoringAware(fExportRefactoringsCheckbox.getSelection()); else fJarPackage.setRefactoringAware(false); fJarPackage.setCompress(fCompressCheckbox.getSelection()); fJarPackage.setIncludeDirectoryEntries(fIncludeDirectoryEntriesCheckbox.getSelection()); fJarPackage.setOverwrite(fOverwriteCheckbox.getSelection()); }
protected void saveDescription() throws CoreException, IOException { // Adjust JAR package attributes if (fJarPackage.isManifestReused()) fJarPackage.setGenerateManifest(false); ByteArrayOutputStream objectStreamOutput= new ByteArrayOutputStream(); IJarDescriptionWriter writer= fJarPackage.createJarDescriptionWriter(objectStreamOutput); ByteArrayInputStream fileInput= null; try { writer.write(fJarPackage); fileInput= new ByteArrayInputStream(objectStreamOutput.toByteArray()); IFile descriptionFile= fJarPackage.getDescriptionFile(); if (descriptionFile.isAccessible()) { // AspectJ Change Begin if (fJarPackage.allowOverwrite() || AJJarPackagerUtil.askForOverwritePermission(fParentShell, descriptionFile.getFullPath().toString())) // AspectJ Change End descriptionFile.setContents(fileInput, true, true, null); } else descriptionFile.create(fileInput, true, null); } finally { if (fileInput != null) fileInput.close(); if (writer != null) writer.close(); } }
protected void handleMainClassBrowseButtonPressed() { List<IResource> resources= JarPackagerUtil.asResources(fJarPackage.getElements()); if (resources == null) { setErrorMessage(JarPackagerMessages.JarManifestWizardPage_error_noResourceSelected); return; } IJavaSearchScope searchScope= JavaSearchScopeFactory.getInstance().createJavaSearchScope(resources.toArray(new IResource[resources.size()]), true); SelectionDialog dialog= JavaUI.createMainTypeDialog(getContainer().getShell(), getContainer(), searchScope, 0, false, ""); //$NON-NLS-1$ dialog.setTitle(JarPackagerMessages.JarManifestWizardPage_mainTypeSelectionDialog_title); dialog.setMessage(JarPackagerMessages.JarManifestWizardPage_mainTypeSelectionDialog_message); if (fJarPackage.getManifestMainClass() != null) dialog.setInitialSelections(new Object[] {fJarPackage.getManifestMainClass()}); if (dialog.open() == Window.OK) { fJarPackage.setManifestMainClass((IType)dialog.getResult()[0]); fMainClassText.setText(JarPackagerUtil.getMainClassName(fJarPackage)); } else if (!fJarPackage.isMainClassValid(getContainer())) { // user did not cancel: no types were found fJarPackage.setManifestMainClass(null); fMainClassText.setText(JarPackagerUtil.getMainClassName(fJarPackage)); } }
/** * Updates the enablements of this page's controls. Subclasses may extend. */ protected void updateWidgetEnablements() { boolean saveDescription= fSaveDescriptionCheckbox.getSelection(); fDescriptionFileGroup.setEnabled(saveDescription); fDescriptionFileBrowseButton.setEnabled(saveDescription); fDescriptionFileText.setEnabled(saveDescription); fDescriptionFileLabel.setEnabled(saveDescription); boolean exportClassFiles= fJarPackage.areClassFilesExported() && !fJarPackage.areOutputFoldersExported(); fExportWarningsCheckbox.setEnabled(exportClassFiles); fExportErrorsCheckbox.setEnabled(exportClassFiles); boolean isAutobuilding= ResourcesPlugin.getWorkspace().isAutoBuilding(); fBuildIfNeededCheckbox.setEnabled(exportClassFiles && !isAutobuilding); fUseSourceFoldersCheckbox.setEnabled(fJarPackage.areJavaFilesExported() && !fJarPackage.areGeneratedFilesExported()); }
private void xmlWriteSelectedElements(JarPackageData jarPackage, Document document, Element xmlJarDesc) throws DOMException { Element selectedElements= document.createElement("selectedElements"); //$NON-NLS-1$ xmlJarDesc.appendChild(selectedElements); selectedElements.setAttribute("exportClassFiles", "" + jarPackage.areClassFilesExported()); //$NON-NLS-2$ //$NON-NLS-1$ selectedElements.setAttribute("exportOutputFolder", "" + jarPackage.areOutputFoldersExported()); //$NON-NLS-2$ //$NON-NLS-1$ selectedElements.setAttribute("exportJavaFiles", "" + jarPackage.areJavaFilesExported()); //$NON-NLS-2$ //$NON-NLS-1$ Object[] elements= jarPackage.getElements(); for (int i= 0; i < elements.length; i++) { Object element= elements[i]; if (element instanceof IResource) add((IResource)element, selectedElements, document); else if (element instanceof IJavaElement) add((IJavaElement)element, selectedElements, document); // Note: Other file types are not handled by this writer } }
private void saveManifest() throws CoreException, IOException { ByteArrayOutputStream manifestOutput= new ByteArrayOutputStream(); Manifest manifest= fJarPackage.getManifestProvider().create(fJarPackage); manifest.write(manifestOutput); ByteArrayInputStream fileInput= new ByteArrayInputStream(manifestOutput.toByteArray()); IFile manifestFile= fJarPackage.getManifestFile(); if (manifestFile.isAccessible()) { if (fJarPackage.allowOverwrite() || JarPackagerUtil.askForOverwritePermission(fParentShell, manifestFile.getFullPath().toString())) manifestFile.setContents(fileInput, true, true, null); } else manifestFile.create(fileInput, true, null); }
Assert.isNotNull(description.getFileExtension()); Assert.isLegal(description.getFileExtension().equals(JarPackagerUtil.DESCRIPTION_EXTENSION)); JarPackageData jarPackage= new JarPackageData(); IJarDescriptionReader reader= null; try { reader= jarPackage.createJarDescriptionReader(description.getContents()); jarPackage.setSaveManifest(false); jarPackage.setSaveDescription(false); } catch (CoreException ex) { String message= Messages.format(JarPackagerMessages.JarFileExportOperation_errorReadingFile, new Object[] {description.getFullPath(), ex.getStatus().getMessage()});
private void saveFiles() { // Save the manifest if (fJarPackage.areGeneratedFilesExported() && fJarPackage.isManifestGenerated() && fJarPackage.isManifestSaved()) { try { saveManifest(); } catch (CoreException ex) { addError(JarPackagerMessages.JarFileExportOperation_errorSavingManifest, ex); } catch (IOException ex) { addError(JarPackagerMessages.JarFileExportOperation_errorSavingManifest, ex); } } // Save the description if (fJarPackage.isDescriptionSaved()) { try { saveDescription(); } catch (CoreException ex) { addError(JarPackagerMessages.JarFileExportOperation_errorSavingDescription, ex); } catch (IOException ex) { addError(JarPackagerMessages.JarFileExportOperation_errorSavingDescription, ex); } } }
public UnpackJarBuilder(JarPackageData jarPackage) { fSubfolder= jarPackage.getAbsoluteJarLocation().removeFileExtension().lastSegment() + SUBFOLDER_SUFFIX; fSubfolderPath= jarPackage.getAbsoluteJarLocation().removeLastSegments(1).append(fSubfolder); fJarPackage= jarPackage; }
/** * Exports the resources as specified by the JAR package. */ protected void exportSelectedElements(IProgressMonitor progressMonitor) throws InterruptedException { fExportedClassContainers= new HashSet(10); Set enclosingJavaProjects= new HashSet(10); int n= fJarPackage.getElements().length; for (int i= 0; i < n; i++) { Object element= fJarPackage.getElements()[i]; exportElement(element, progressMonitor); if (fJarPackage.areOutputFoldersExported()) { IJavaProject javaProject= getEnclosingJavaProject(element); if (javaProject != null) enclosingJavaProjects.add(javaProject); } } if (fJarPackage.areOutputFoldersExported()) exportOutputFolders(progressMonitor, enclosingJavaProjects); }
@Override public void init(IWorkbench workbench, IStructuredSelection selection) { fSelection= getSelectedJavaProjects(); fJarPackage= new JarPackageData(); fJarPackage.setIncludeDirectoryEntries(true); setInitializeFromJarPackage(false); setWindowTitle(FatJarPackagerMessages.JarPackageWizard_windowTitle); setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_FAT_JAR_PACKAGER); setNeedsProgressMonitor(true); }
File file= fJarPackage.getAbsoluteJarLocation().toFile(); if (file.exists()) { if (!file.canWrite()) return false; if (fJarPackage.allowOverwrite()) return true; return parent != null && JarPackagerUtil.askForOverwritePermission(parent, fJarPackage.getAbsoluteJarLocation(), true);
@Override public void keyReleased(KeyEvent e) { fJarPackage.setManifestMainClass(findMainMethodByName(fMainClassText.getText())); update(); } });