/*******************************************************************************
 * See the NOTICE file distributed with this work for additional information
 * regarding copyright ownership.
 * 
 * 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 hr.fer.zemris.vhdllab.platform.javaws;

import hr.fer.zemris.vhdllab.platform.gui.dialog.DialogManager;

import javax.jnlp.SingleInstanceListener;
import javax.swing.JFrame;

import org.apache.log4j.Logger;
import org.springframework.richclient.application.Application;

public final class EnforceSingleInstanceListener implements
        SingleInstanceListener {

    /**
     * Logger for this class
     */
    private static final Logger LOG = Logger
            .getLogger(EnforceSingleInstanceListener.class);

    private final DialogManager dialogManager;

    public EnforceSingleInstanceListener(DialogManager dialogManager) {
        this.dialogManager = dialogManager;
    }

    @Override
    public void newActivation(String[] args) {
        LOG.debug("Denied start of second client application");
        JFrame frame = Application.instance().getActiveWindow().getControl();
        if (frame != null) {
            frame.toFront();
            dialogManager.showDialog();
        }
    }

}

@@ -983,35 +983,8 @@
 ner;
-%0Aimport javax.swing.JFrame;
 %0A%0Aim
@@ -1075,16 +1075,85 @@
 ication;
+%0Aimport org.springframework.richclient.application.ApplicationWindow;
 %0A%0Apublic
@@ -1700,20 +1700,32 @@
     
-JFrame frame
+ApplicationWindow window
  = A
@@ -1767,21 +1767,8 @@
 ow()
-.getControl()
 ;%0A  
@@ -1777,21 +1777,53 @@
     if (
-frame
+window != null && window.getControl()
  != null
@@ -1838,21 +1838,35 @@
         
-frame
+window.getControl()
 .toFront

Complete - # 9: NullPointerException u EnforceSingleInstanceListener http://morgoth.zemris.fer.hr/trac/vhdllab/ticket/9