SyGBeginEditingTask::SyGBeginEditingTask
	(
	SyGFileTreeTable*	table,
	const JPoint&		cell
	)
	:
	JXIdleTask(kJXDoubleClickTime),
	itsTable(table),
	itsNode((table->GetFileTreeList())->GetSyGNode(cell.y))
{
	ClearWhenGoingAway(itsNode, &itsNode);
	ClearWhenGoingAway(itsNode, &(itsTable->itsEditTask));
}
SyGDuplicateProcess::SyGDuplicateProcess
	(
	SyGFileTreeTable*					table,
	const JPtrArray<SyGFileTreeNode>&	nodeList
	)
	:
	itsTable(table),
	itsNodeList(JPtrArrayT::kForgetAll),
	itsFullNameList(JPtrArrayT::kDeleteAll),
	itsProcess(NULL),
	itsShouldEditFlag(JI2B(nodeList.GetElementCount() == 1))
{
	(itsTable->GetTableSelection()).ClearSelection();
	ClearWhenGoingAway(itsTable, &itsTable);

	const JSize count = nodeList.GetElementCount();
	for (JIndex i=1; i<=count; i++)
		{
		SyGFileTreeNode* node = const_cast<SyGFileTreeNode*>(nodeList.NthElement(i));
		itsNodeList.Append(node);
		itsFullNameList.Append((node->GetDirEntry())->GetFullName());
		ListenTo(node);
		}

	ProcessNextFile();
}
예제 #3
0
CBCommand::CBCommand
	(
	const JString&		path,
	const JBoolean		refreshVCSStatusWhenFinished,
	const JBoolean		beepWhenFinished,
	CBProjectDocument*	projDoc
	)
	:
	itsProjDoc(projDoc),
	itsCmdPath(path),
	itsOutputDoc(NULL),
	itsBeepFlag(beepWhenFinished),
	itsRefreshVCSStatusFlag(refreshVCSStatusWhenFinished),
	itsUpdateSymbolDatabaseFlag(kJFalse),
	itsInQueueFlag(kJFalse),
	itsSuccessFlag(kJTrue),
	itsCancelledFlag(kJFalse),
	itsMakeDependCmd(NULL),
	itsBuildOutputDoc(NULL),
	itsRunOutputDoc(NULL),
	itsParent(NULL),
	itsCallParentProcessFinishedFlag(kJTrue)
{
	assert( JIsAbsolutePath(path) );

	itsCmdList = jnew JArray<CmdInfo>;
	assert( itsCmdList != NULL );

	if (itsProjDoc != NULL)
		{
		ClearWhenGoingAway(itsProjDoc, &itsProjDoc);
		}
}
CMInitVarNodeTask::CMInitVarNodeTask
	(
	CMVarNode* node
	)
{
	itsNode = node;
	ClearWhenGoingAway(itsNode, &itsNode);
}
JXScrollTabsTask::JXScrollTabsTask
	(
	JXTabGroup* tabGroup
	)
	:
	itsTabGroup(tabGroup)
{
	ClearWhenGoingAway(itsTabGroup, &itsTabGroup);
}
JXUpdateMinSizeTask::JXUpdateMinSizeTask
	(
	JXDockWidget* dock
	)
	:
	itsDockWidget(dock)
{
	ClearWhenGoingAway(itsDockWidget, &itsDockWidget);
}
SVNRefreshStatusTask::SVNRefreshStatusTask
	(
	SVNMainDirector* director
	)
	:
	JXIdleTask(kRetryPeriod),
	itsDirector(director)
{
	ClearWhenGoingAway(itsDirector, &itsDirector);
}
JVMGetThreadParent::JVMGetThreadParent
	(
	JVMThreadNode*	node,
	const JBoolean	checkOnly
	)
	:
	CMCommand("", kJTrue, kJFalse),
	itsNode(node),
	itsCheckOnlyFlag(checkOnly)
{
	ClearWhenGoingAway(itsNode, &itsNode);
	CMCommand::Send();
}
JXCSFSelectPrevDirTask::JXCSFSelectPrevDirTask
	(
	JDirInfo*			dirInfo,
	JXDirTable*			dirTable,
	const JCharacter*	dirName
	)
	:
	JXUrgentTask()
{
	itsDirInfo  = dirInfo;
	itsDirTable = dirTable;
	ClearWhenGoingAway(itsDirTable, &itsDirTable);

	itsDirName = jnew JString(dirName);
	assert( itsDirName != NULL );
}
JXImagePainter::JXImagePainter
	(
	JXImage*		image,
	Drawable		drawable,
	const JRect&	defaultClipRect,
	const Region	defaultClipRegion
	)
	:
	JXWindowPainter(new JXGC(image->GetDisplay(), drawable),
					drawable, defaultClipRect, defaultClipRegion)
{
	assert( image != NULL );

#ifndef NDEBUG
	{
	JXGC* gc = GetGC();
	assert( gc != NULL );
	}
#endif

	itsImage = image;
	ClearWhenGoingAway(itsImage, &itsImage);
}
void
GPMProcessTreeList::Receive
	(
	JBroadcaster*	sender,
	const Message&	message
	)
{
	if (sender == itsList && message.Is(GPMProcessList::kPrepareForUpdate))
		{
		if (itsSelectedEntry != NULL)
			{
			StopListening(itsSelectedEntry);
			itsSelectedEntry = NULL;
			}

		if (GetSelectedProcess(&itsSelectedEntry))
			{
			ClearWhenGoingAway(itsSelectedEntry, &itsSelectedEntry);
			}
		}

	else if (sender == itsList && message.Is(GPMProcessList::kListChanged))
		{
		JTableSelection& s = GetTableSelection();
		s.ClearSelection();

		JIndex index;
		if (itsSelectedEntry != NULL &&
			GetTreeList()->FindNode(itsSelectedEntry, &index))
			{
			s.SelectRow(index);

			StopListening(itsSelectedEntry);
			itsSelectedEntry = NULL;
			}

		Refresh();
		}

	else if (sender == itsContextMenu && message.Is(JXMenu::kNeedsUpdate))
		{
		UpdateContextMenu();
		}
	else if (sender == itsContextMenu && message.Is(JXMenu::kItemSelected))
		{
		 const JXMenu::ItemSelected* selection =
			dynamic_cast<const JXMenu::ItemSelected*>(&message);
		assert( selection != NULL );
		HandleContextMenu(selection->GetIndex());
		}

	else
		{
		if (sender == &(GetTableSelection()) && message.Is(JTableData::kRectChanged))
			{
			const GPMProcessEntry* entry;
			if (IsVisible() && GetSelectedProcess(&entry))
				{
				itsFullCmdDisplay->SetText(entry->GetFullCommand());
				}
			}

		JXNamedTreeListWidget::Receive(sender, message);
		}
}
예제 #12
0
void
SMTPMessage::Send()
{
	HandleAddresses();

	AppendToOutbox("From ");
	AppendToOutbox(*itsFrom);
	AppendToOutbox(" ");

	struct timeb tp;
	ftime(&tp);
	JString date(ctime(&(tp.time)));
	AppendToOutbox(date);

	std::istrstream is(date.GetCString(), date.GetLength());
	JString dow;
	JString mon;
	JString day;
	JString rest;
	dow = JReadUntilws(is);
	mon = JReadUntilws(is);
	day = JReadUntilws(is);
	JReadAll(is, &rest);

	AppendToOutbox("Date: ");
	AppendToOutbox(dow);
	AppendToOutbox(", ");
	AppendToOutbox(day);
	AppendToOutbox(" ");
	AppendToOutbox(mon);
	AppendToOutbox(" ");
	AppendToOutbox(rest);

	JString addrStr = itsSMTPServer;
	if (!addrStr.Contains(":"))
		{
		addrStr += ":25";
		}
	ACE_INET_Addr addr(addrStr);

	itsLink = new InetLink;
	assert(itsLink != NULL);

	itsConnector = new INETConnector;
	assert( itsConnector != NULL );

	ACE_Synch_Options options(ACE_Synch_Options::USE_REACTOR, ACE_Time_Value(kMaxWaitSeconds));

	if (itsConnector->connect(itsLink, addr, options) == -1 &&
		jerrno() != EAGAIN)
		{
		JString notice	= "No response from sendmail : Error number ";
		int errNumber	= jerrno();
		notice += JString(errNumber);
		JGetUserNotification()->ReportError(notice);
		itsDeleteTask = new JXTimerTask(1000,kJTrue);
		assert( itsDeleteTask != NULL );
		itsDeleteTask->Start();
		ListenTo(itsDeleteTask);
		Broadcast(SendFailure());
//		itsLink = NULL;
		return;
		}
	itsTimeoutTask = new JXTimerTask(kMaxWaitSeconds * 1000,kJTrue);
	assert( itsTimeoutTask != NULL );
	itsTimeoutTask->Start();
	ListenTo(itsTimeoutTask);
	ClearWhenGoingAway(itsLink, &itsLink);
}