I am having problems with creating an PopUp Window. I receive an error message when trying to create the PopUp Window. Here is the error message:
TypeError: Error #1007: Instantiation attempted on a non-constructor.
at mx.managers::PopUpManagerImpl/createPopUp()
at mx.managers::PopUpManager$/createPopUp()
at com.managers.popup::PopManager$/openPopUpWindow()
at org.puremvc.user.view::RepDetailsMediator/onUploadPopUp()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at org.puremvc.user.view.components::RepDetails/uploadPopUpFunc()
at org.puremvc.user.view.components::RepDetails/___Button1_click()
I have a canvas that sends an event to its mediator which calls the method to create the popup. I created an UploadForm and UploadFormMediator and a PopManager class.
package com.managers.popup
{
import flash.display.Sprite;
import mx.core.Application;
import mx.core.IFlexDisplayObject;
import mx.managers.PopUpManager;
import org.puremvc.user.ApplicationFacade;
public class PopManager extends PopUpManager
{
public static function openPopUpWindow( ComponentClass:Class, MediatorClass:Class ):void
{
var window:IFlexDisplayObject = PopUpManager.createPopUp( Application.application as Sprite, ComponentClass, true );
ApplicationFacade.getInstance().registerMediator( new MediatorClass( window ) );
PopUpManager.centerPopUp( window );
}
public static function closePopUpWindow( window:IFlexDisplayObject, mediatorName:String ):void
{
PopUpManager.removePopUp( window );
ApplicationFacade.getInstance().removeMediator( mediatorName );
}
}
}
Here is the RepDetailsMediator.as
/*
PureMVC Architecture 101 Course
Copyright(c) 2007 FutureScale, Inc. All rights reserved.
*/
package org.puremvc.user.view
{
import mx.controls.Alert;
import flash.events.Event;
import org.puremvc.interfaces.IMediator;
import org.puremvc.interfaces.INotification;
import org.puremvc.patterns.mediator.Mediator;
import org.puremvc.patterns.observer.Notification;
import org.puremvc.common.model.vo.UserVO;
import org.puremvc.common.model.UserProxy;
import org.puremvc.common.model.RepDetailsProxy;
import org.puremvc.user.ApplicationFacade;
import org.puremvc.user.view.components.NewUserForm;
import org.puremvc.user.view.components.RepDetails;
import org.puremvc.user.view.components.UploadForm;
import com.managers.popup.PopManager;
public class RepDetailsMediator extends Mediator implements IMediator
{
public static const NAME:String = "RepDetailsMediator";
private var userProxy:UserProxy;
private var repDetailsProxy:RepDetailsProxy;
private var UploadForm:Class;
private var UploadFormMediator:Class;
public function RepDetailsMediator( viewComponent:Object )
{
super( viewComponent );
repDetails.addEventListener( RepDetails.CHECKBOX_SELECTED, onCheckBoxSelected );
repDetails.addEventListener( RepDetails.UPLOAD_POPUP, onUploadPopUp );
userProxy = facade.retrieveProxy( UserProxy.NAME ) as UserProxy;
repDetailsProxy = facade.retrieveProxy( RepDetailsProxy.NAME ) as RepDetailsProxy;
}
private function get repDetails():RepDetails
{
return viewComponent as RepDetails;
}
override public function getMediatorName():String
{
return NAME;
}
private function onCheckBoxSelected( event:Event ) : void
{
trace("Here Here Data:" + repDetails.checkedData);
userProxy.updateProject(repDetails.checkedData);
}
private function onUploadPopUp(event:Event):void
{
PopManager.openPopUpWindow( UploadForm, UploadFormMediator );
}
override public function listNotificationInterests():Array
{
return [
ApplicationFacade.NEW_USER_FORM
];
}
override public function handleNotification( note:INotification ):void
{
switch ( note.getName() )
{
case ApplicationFacade.NEW_USER_FORM:
repDetails.projectData = repDetailsProxy.projectData;
repDetails.statesData = repDetailsProxy.statesData;
repDetails._selectedDate = repDetailsProxy.getNow18Years();
}
}
}
}
Any help or suggestions is much needed and appreciated.
Thanks,
Kevin