Servet.Karabas

controller ile yapılan aktarım işleminin kesilmesi

  j-Platform/LPT

Controller konusunda en çok yaşadığımız sorun, ekrana bir mesaj gelmesi ve aktarımı kesmesidir.


controller exception handling


Servet.Karabas
  • analiz ve kodlama sonrasında değişen bir ticari sistem parametresi veya
  • testler sırasında doldurulmayan bir alan
  • farklı tipte seçilen bir kayıt v.b. sebeb

ile ekrana işlenmeyen bir mesajın gelmesi ile aktarım kesilebilir. Bu mesajları aktarımı kesmemesi için yakalamamız gerekir.

Bu kısım controller kodları için önemlidir;

controller kodlarının arayüz işlemlerini simule etmesi ile arayüz işlemleri sırasında alınan hataların controller aktarımları sırasında gelmesi ve aktarımı kesebilir.

İşleme ve mesaje göre listener eklenebildiği gibi genel listener eklemek de mümkün ve istediğiniz gibi tiplerinden ayırt edebiliyorsunuz. sourceMessage.getType() bu bilgiyi sağlıyor.

Örnekte 4 tip te işlendi.

public class IrsDel implements ILbsControllerTask
{
	private String IrsNo = null;
	public IrsDel(String IrsNo) {
		this.IrsNo = IrsNo;                          
	}
	public void execute(LbsMenuController menu, IClientContext context)
	{
		try
		{
			ILbsController controller = menu.launchSalesDispatches();
			if (controller instanceof LOXFDispatchBrowserController)
			{
				LOXFDispatchBrowserController controller1 = (LOXFDispatchBrowserController) controller;
				LOXFDispatchBrowser_Grid100SearchParams slipBrowserSearchParams = controller1.getLOXFDispatchBrowser_Grid100SearchParams();
				slipBrowserSearchParams.setNo(IrsNo);
				slipBrowserSearchParams.search();
				controller1.selectGrid100Row(0);
				controller1.clickApply();
				
				menu.getControllerRegistry().setMessageExecutor(new ILbsMessageExecutor()
				{
					public JLbsMessageDialogResult onMessageShow(JLbsMessage sourceMessage, String mainMessage, JLbsStringList messages, String title, ILbsCultureInfo culture, int defButton, Object buttonDefs)
					{
						String mymainMessage= mainMessage;
						String mytitle = title;
						int mydefButton = defButton; 
						String myID= sourceMessage.getId();
						String myModule= sourceMessage.getModule();
						int myType = sourceMessage.getType();
						int mygetButtons= sourceMessage.getButtons();
						int myDefaultButton= sourceMessage.getDefaultButton();
						boolean  myisButtonCaptionsSet= sourceMessage.isButtonCaptionsSet();
						ILbsCultureInfo myculture = culture;
						JLbsStringList mymessages =messages;
						Object mybuttonDefs=buttonDefs;//
						sourceMessage.setDefaultMessage("hedele hüdele");
						switch (sourceMessage.getType()) {
						case 1:  { JOptionPane.showMessageDialog(null, "ERROR - " + sourceMessage.getId());
								JLbsMessageDialogResult result = new JLbsMessageDialogResult();
								result.button = 1;
								return result;
							} 
						case 2:{ JOptionPane.showMessageDialog(null, "INFO - " + sourceMessage.getId());
								JLbsMessageDialogResult result = new JLbsMessageDialogResult();
								result.button = 1;
								return result;
							}
						case 3:  JOptionPane.showMessageDialog(null, "WARNING - " + sourceMessage.getId());
							break;
						case 4:  JOptionPane.showMessageDialog(null, "SELECTION - " + sourceMessage.getId());
							break;
						default: JOptionPane.showMessageDialog(null, "UNKNOWN ERROR TYPE - " + sourceMessage.getId());
							break;
						}
						return null;
						
					}
					public void onMultiMessageShow(JLbsMessage sourceMessage)
					{
						JOptionPane.showMessageDialog(null, "onMultiMessageShow");
					}
					public boolean onPaneMessage(int type, int id, String message, int controlTag, int itemTag)
					{
						JOptionPane.showMessageDialog(null, "onPaneMessage");
						return false;
					}
					public boolean onPaneMessage(int type, int id, String message, int controlTag, int itemTag, int rowIdx, int columnIdx)
					{
						JOptionPane.showMessageDialog(null, "onPaneMessage_line");
						return false;
					}
					public boolean onPaneMessages(ArrayList errorMessages)
					{
						JOptionPane.showMessageDialog(null, "onPaneMessage_array");
						return false;
					}
				});
				controller1.clickDelete();
				controller1.clickClose();
			}
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
}

 


30/03/15 13:40

Cevap vermek için giriş yapmanız gerekmektedir.