Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT Program/wpf/org/eclipse/swt/program/Program.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Program/wpf/org/eclipse/swt/program/Program.java311
1 files changed, 0 insertions, 311 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Program/wpf/org/eclipse/swt/program/Program.java b/bundles/org.eclipse.swt/Eclipse SWT Program/wpf/org/eclipse/swt/program/Program.java
deleted file mode 100644
index 37a0b076c0..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Program/wpf/org/eclipse/swt/program/Program.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.program;
-
-
-import java.io.IOException;
-
-import org.eclipse.swt.internal.*;
-import org.eclipse.swt.internal.wpf.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * Instances of this class represent programs and
- * their associated file extensions in the operating
- * system.
- */
-public final class Program {
- String name;
- String command;
- String iconName;
-
-/**
- * Prevents uninitialized instances from being created outside the package.
- */
-Program () {
-}
-
-static int createDotNetString (String string) {
- if (string == null) return 0;
- int length = string.length ();
- char [] buffer = new char [length + 1];
- string.getChars (0, length, buffer, 0);
- return OS.gcnew_String (buffer);
-}
-
-static String createJavaString (int ptr) {
- int charArray = OS.String_ToCharArray (ptr);
- char[] chars = new char[OS.String_Length (ptr)];
- OS.memcpy (chars, charArray, chars.length * 2);
- OS.GCHandle_Free (charArray);
- return new String (chars);
-}
-
-/**
- * Finds the program that is associated with an extension.
- * The extension may or may not begin with a '.'. Note that
- * a <code>Display</code> must already exist to guarantee that
- * this method returns an appropriate result.
- *
- * @param extension the program extension
- * @return the program or <code>null</code>
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT when extension is null</li>
- * </ul>
- */
-public static Program findProgram (String extension) {
- if (extension == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
- if (extension.length () == 0) return null;
- if (extension.charAt (0) != '.') extension = "." + extension; //$NON-NLS-1$
- int key = createDotNetString (extension);
- int classesRoot = OS.Registry_ClassesRoot ();
- int registryKey = OS.RegistryKey_OpenSubKey (classesRoot, key);
- OS.GCHandle_Free (key);
- OS.GCHandle_Free (classesRoot);
- if (registryKey == 0) return null;
- Program program = null;
- int value = OS.RegistryKey_GetValue (registryKey, 0);
- if (value != 0) {
- String string = createJavaString (value);
- program = getProgram (string);
- OS.GCHandle_Free (value);
- }
- OS.GCHandle_Free (registryKey);
- return program;
-}
-
-/**
- * Answer all program extensions in the operating system. Note
- * that a <code>Display</code> must already exist to guarantee
- * that this method returns an appropriate result.
- *
- * @return an array of extensions
- */
-public static String [] getExtensions () {
- //TODO
- return new String[0];
-}
-
-static String getKeyValue (String string, boolean expand) {
- int classesRoot = OS.Registry_ClassesRoot ();
- int key = createDotNetString (string);
- int registryKey = OS.RegistryKey_OpenSubKey (classesRoot, key);
- OS.GCHandle_Free (key);
- OS.GCHandle_Free (classesRoot);
- if (registryKey == 0) return null;
- String result = null;
- int value = OS.RegistryKey_GetValue (registryKey, 0);
- if (value != 0) {
- if (expand) {
- int expandedValue = OS.Environment_ExpandEnvironmentVariables (value);
- OS.GCHandle_Free (value);
- value = expandedValue;
- }
- result = createJavaString (value);
- OS.GCHandle_Free (value);
- }
- OS.GCHandle_Free (registryKey);
- return result;
-}
-
-static Program getProgram (String key) {
- /* Name */
- String name = getKeyValue (key, false);
- if (name == null || name.length () == 0) {
- name = key;
- }
-
- /* Command */
- String DEFAULT_COMMAND = "\\shell"; //$NON-NLS-1$
- String defaultCommand = getKeyValue (key + DEFAULT_COMMAND, true);
- if (defaultCommand == null || defaultCommand.length() == 0) defaultCommand = "open"; //$NON-NLS-1$
- String COMMAND = "\\shell\\" + defaultCommand + "\\command"; //$NON-NLS-1$
- String command = getKeyValue (key + COMMAND, true);
- if (command == null || command.length () == 0) return null;
-
- /* Icon */
- String DEFAULT_ICON = "\\DefaultIcon"; //$NON-NLS-1$
- String iconName = getKeyValue (key + DEFAULT_ICON, true);
- if (iconName == null) iconName = ""; //$NON-NLS-1$
-
- Program program = new Program ();
- program.name = name;
- program.command = command;
- program.iconName = iconName;
- return program;
-}
-
-/**
- * Answers all available programs in the operating system. Note
- * that a <code>Display</code> must already exist to guarantee
- * that this method returns an appropriate result.
- *
- * @return an array of programs
- */
-public static Program [] getPrograms () {
- //TODO compare results with win32.
- Program [] programs = new Program [1024];
- int classesRoot = OS.Registry_ClassesRoot ();
- int names = OS.RegistryKey_GetSubKeyNames (classesRoot);
- OS.GCHandle_Free (classesRoot);
- int length = OS.ICollection_Count (names);
- int count = 0;
- for (int i = 0; i < length; i++) {
- int name = OS.IList_default (names, i);
- String string = createJavaString (name);
- OS.GCHandle_Free (name);
- Program program = getProgram (string);
- if (program != null) {
- if (count == programs.length) {
- Program [] newPrograms = new Program [programs.length + 1024];
- System.arraycopy (programs, 0, newPrograms, 0, programs.length);
- programs = newPrograms;
- }
- programs [count++] = program;
- }
- }
- OS.GCHandle_Free (names);
- if (count != programs.length) {
- Program [] newPrograms = new Program [count];
- System.arraycopy (programs, 0, newPrograms, 0, count);
- programs = newPrograms;
- }
- return programs;
-}
-
-/**
- * Launches the executable associated with the file in
- * the operating system. If the file is an executable,
- * then the executable is launched. Note that a <code>Display</code>
- * must already exist to guarantee that this method returns
- * an appropriate result.
- *
- * @param fileName the file or program name
- * @return <code>true</code> if the file is launched, otherwise <code>false</code>
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT when fileName is null</li>
- * </ul>
- */
-public static boolean launch (String fileName) {
- //TODO
- return false;
-}
-
-/**
- * Executes the program with the file as the single argument
- * in the operating system. It is the responsibility of the
- * programmer to ensure that the file contains valid data for
- * this program.
- *
- * @param fileName the file or program name
- * @return <code>true</code> if the file is launched, otherwise <code>false</code>
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT when fileName is null</li>
- * </ul>
- */
-public boolean execute (String fileName) {
- if (fileName == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
- boolean quote = true;
- String prefix = command, suffix = ""; //$NON-NLS-1$
- int index = command.indexOf ("%1"); //$NON-NLS-1$
- if (index != -1) {
- int count=0;
- int i=index + 2, length = command.length ();
- while (i < length) {
- if (command.charAt (i) == '"') count++;
- i++;
- }
- quote = count % 2 == 0;
- prefix = command.substring (0, index);
- suffix = command.substring (index + 2, length);
- }
- if (quote) fileName = " \"" + fileName + "\""; //$NON-NLS-1$ //$NON-NLS-2$
- try {
- Compatibility.exec(prefix + fileName + suffix);
- } catch (IOException e) {
- return false;
- }
- return true;
-}
-
-/**
- * Returns the receiver's image data. This is the icon
- * that is associated with the receiver in the operating
- * system.
- *
- * @return the image data for the program, may be null
- */
-public ImageData getImageData () {
- //TODO
- return null;
-}
-
-/**
- * Returns the receiver's name. This is as short and
- * descriptive a name as possible for the program. If
- * the program has no descriptive name, this string may
- * be the executable name, path or empty.
- *
- * @return the name of the program
- */
-public String getName () {
- return name;
-}
-
-/**
- * Compares the argument to the receiver, and returns true
- * if they represent the <em>same</em> object using a class
- * specific comparison.
- *
- * @param other the object to compare with this object
- * @return <code>true</code> if the object is the same as this object and <code>false</code> otherwise
- *
- * @see #hashCode()
- */
-public boolean equals(Object other) {
- if (this == other) return true;
- if (other instanceof Program) {
- final Program program = (Program) other;
- return name.equals(program.name) && command.equals(program.command)
- && iconName.equals(program.iconName);
- }
- return false;
-}
-
-/**
- * Returns an integer hash code for the receiver. Any two
- * objects that return <code>true</code> when passed to
- * <code>equals</code> must return the same value for this
- * method.
- *
- * @return the receiver's hash
- *
- * @see #equals(Object)
- */
-public int hashCode() {
- return name.hashCode() ^ command.hashCode() ^ iconName.hashCode();
-}
-
-/**
- * Returns a string containing a concise, human-readable
- * description of the receiver.
- *
- * @return a string representation of the program
- */
-public String toString () {
- return "Program {" + name + "}"; //$NON-NLS-1$ //$NON-NLS-2$
-}
-
-}

Back to the top