public boolean importData(JComponent jcIn, Transferable tIn)
	{
		if (! this.canImport(jcIn, tIn.getTransferDataFlavors()))
		{
			return false;
		}

		try
		{
			EzimMsgOut emoTarget = null;
			Object objTmp = null;

			emoTarget = (EzimMsgOut) jcIn.getParent().getParent()
				.getParent().getParent().getParent();

			if (this.hasLocalArrayListFlavor(tIn.getTransferDataFlavors()))
			{
				// buffer transferred data
				objTmp = tIn.getTransferData(this.dfLocal);

				if (objTmp instanceof ArrayList)
				{
					@SuppressWarnings("unchecked")
					ArrayList<EzimContact> alTmp
						= (ArrayList<EzimContact>) objTmp;

					// import transferred data
					emoTarget.addContacts(alTmp);
				}
			}
			else if
			(
				this.hasSerialArrayListFlavor(tIn.getTransferDataFlavors())
			)
			{
				// buffer transferred data
				objTmp = tIn.getTransferData(this.dfSerial);

				if (objTmp instanceof ArrayList)
				{
					@SuppressWarnings("unchecked")
					ArrayList<EzimContact> alTmp
						= (ArrayList<EzimContact>) objTmp;

					// import transferred data
					emoTarget.addContacts(alTmp);
				}
			}
			else
			{
				return false;
			}
		}
		catch(UnsupportedFlavorException ufe)
		{
			EzimLogger.getInstance().severe(ufe.getMessage(), ufe);
			return false;
		}
		catch(IOException ioe)
		{
			EzimLogger.getInstance().severe(ioe.getMessage(), ioe);
			return false;
		}

		return true;
	}