public static void processAction(Object container,SwingWorkerInterface swingworker){
		ActionProcessor processor=new ActionProcessor();
		try{
			try {
                if(!swingworker.proceed()){
                    return;
                }
                processor.initCompsAndValidate(container,swingworker);
                if(!processor.confirmMessages.isEmpty() && !processor.isUserSayingOkToContinue()){
                    return;
                }
                if(!processor.isError) {
                    DataMapper.mapData(container);
                    processor.isError=!swingworker.validateAndPopulate(processor.scopeObj);
					if(!processor.isError) {
						processor.scopeObj.setContainer(container);
						processor.scopeObj.setFieldsOfTheContainer(processor.fieldsOfContainer);
						swingworker.execute();
					}else{
						processor.showErrorDialog();
					}
				}else {
					processor.showErrorDialog();
				}
			}finally {
				CommonUI.restoreComponentsToInitialState(processor.fieldsOfContainer);
				if(processor.isError) {
					RequestScope.endOfRequest(processor.scopeObj);
				}
			}
		}
		catch(Exception e){
			CommonUI.restoreComponentsToInitialState(processor.fieldsOfContainer);
			if(e instanceof SwingObjectsExceptions) {
				CommonUI.showErrorDialogForComponent((SwingObjectsExceptions)e);
			}else {
				CommonUI.showErrorDialogForComponent(new SwingObjectRunException(e,ErrorSeverity.SEVERE, FrameFactory.class));
			}
		}
	}