Click here to Skip to main content
15,885,792 members
Articles / Desktop Programming / MFC

UMLEditor - revisiting the vector editor

Rate me:
Please Sign up or sign in to vote.
4.99/5 (156 votes)
5 Jul 2006Public Domain8 min read 376.1K   37.1K   326  
An UML editor with code-generation capabilities derived from CDiagramEditor.
#if !defined(AFX_UMLCLASSPROPERTYDIALOG_H__9B1B631A_258B_4C45_87BC_8249B0BC474B__INCLUDED_)
#define AFX_UMLCLASSPROPERTYDIALOG_H__9B1B631A_258B_4C45_87BC_8249B0BC474B__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// UMLClassPropertyDialog.h : header file
//

#include "DiagramEditor/DiagramPropertyDlg.h"
#include "../resource.h"
#include "ExListbox.h"
#include "PropertyContainer.h"

/////////////////////////////////////////////////////////////////////////////
// CUMLClassPropertyDialog dialog

class CUMLClassPropertyDialog : public CDiagramPropertyDlg
{
// Construction
public:
	CUMLClassPropertyDialog(CWnd* pParent = NULL);

	virtual void SetValues();

// Dialog Data
	//{{AFX_DATA(CUMLClassPropertyDialog)
	enum { IDD = IDD_UML_DIALOG_PROPERTY_CLASS };
	CExListBox	m_operation;
	CExListBox	m_attribute;
	CString	m_name;
	CString	m_stereotype;
	CString	m_propertylist;
	CEdit	m_nameCtrl;
	//}}AFX_DATA


// Overrides
	//{{AFX_VIRTUAL(CUMLClassPropertyDialog)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CUMLClassPropertyDialog)
	virtual void OnOK();
	virtual void OnCancel();
	afx_msg void OnButtonAddAttribute();
	afx_msg void OnButtonAddOperation();
	afx_msg void OnButtonFont();
	afx_msg void OnButtonColor();
	afx_msg void OnButtonPropertyList();
	afx_msg void OnButtonAutoGenerate();
	afx_msg void OnButtonVisibility();
	afx_msg void OnButtonAutoGenerate2();
	//}}AFX_MSG
	LRESULT OnListboxDblClick( WPARAM id, LPARAM );
	LRESULT OnListboxDelete( WPARAM id, LPARAM );

	DECLARE_MESSAGE_MAP()

private:

	CString		m_font;
	COLORREF	m_color;

	void FillListboxes();
	void ClearListboxes();
	void RefreshListboxes();

	void DeleteAttribute();
	void DeleteOperation();
	void EditAttribute();
	void EditOperation();

	void CreateAttributes();
	void CreateOperations();

	CPropertyContainer	m_properties;

};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_UMLCLASSPROPERTYDIALOG_H__9B1B631A_258B_4C45_87BC_8249B0BC474B__INCLUDED_)

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under A Public Domain dedication


Written By
Software Developer (Senior) Abstrakt Mekanik AB
Sweden Sweden
45 years old, married, three kids.

Started with computers more than 20 years ago on a CBM-64.

Read Theoretical Philosophy at the University of Lund.

Working as a C++ consultant developer.

Science-fiction freak. Enjoy vintage punkrock.

Comments and Discussions