Bug 545874 - [Win32] Remove emulated Link widget code (regression fix)

Fix NPE in WM_GETDLGCODE for links without text.

Change-Id: Idd46512f44e8a5acc6d1fb4f891277923b85e088
Signed-off-by: Nikita Nemkin <nikita@nemkin.ru>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Link.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Link.java
index dd4fea7..ac3355e 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Link.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Link.java
@@ -203,6 +203,8 @@
 void createWidget () {
 	super.createWidget ();
 	text = "";
+	ids = new String[0];
+	mnemonics = new char[0];
 }
 
 @Override
@@ -270,12 +272,10 @@
 
 @Override
 boolean mnemonicHit (char key) {
-	if (mnemonics != null) {
-		char uckey = Character.toUpperCase (key);
-		for (int i = 0; i < mnemonics.length; i++) {
-			if (uckey == mnemonics[i]) {
-				return setFocus () && setFocusItem (i);
-			}
+	char uckey = Character.toUpperCase (key);
+	for (int i = 0; i < mnemonics.length; i++) {
+		if (uckey == mnemonics[i]) {
+			return setFocus () && setFocusItem (i);
 		}
 	}
 	return false;
@@ -283,12 +283,10 @@
 
 @Override
 boolean mnemonicMatch (char key) {
-	if (mnemonics != null) {
-		char uckey = Character.toUpperCase (key);
-		for (int i = 0; i < mnemonics.length; i++) {
-			if (uckey == mnemonics[i]) {
-				return true;
-			}
+	char uckey = Character.toUpperCase (key);
+	for (int i = 0; i < mnemonics.length; i++) {
+		if (uckey == mnemonics[i]) {
+			return true;
 		}
 	}
 	return false;
@@ -643,7 +641,7 @@
 LRESULT WM_KILLFOCUS (long /*int*/ wParam, long /*int*/ lParam) {
 	int focusItem = getFocusItem();
 	LRESULT result = super.WM_KILLFOCUS(wParam, lParam);
-	setFocusItem(focusItem);
+	if (focusItem != -1) setFocusItem(focusItem);
 	return result;
 }