Giter Site home page Giter Site logo

gbaychev / nclass Goto Github PK

View Code? Open in Web Editor NEW
166.0 16.0 50.0 2.56 MB

NClass - the free UML editor, reloaded

License: GNU General Public License v3.0

C# 99.76% PowerShell 0.24%
csharp uml windows-forms dotnet use-case-diagram class-diagram class-diagram-generator

nclass's Introduction

NClass

Build status

Branch Status
Master Build status
Stable Build status
topics/undoredo Build status

The feature branch currently worked on is undo/redo

About

NClass is a free tool to easily create UML class diagrams with C# and Java language support. The user interface is designed to be simple and user-friendly for easy and fast development. Initially the project was developed by the great Balasz Tihanyi on sourceforge, but the project has gone inactive due the lack of time.

Still, NClass is a great tool, although it is missing some important features. The goal of this project is to restart the development of NClass, adding the missing features.

💻 Existing features

  • C# and Java support with many language specific elements
  • Simple and easy to use user interface
  • Inline class editors with syntactic parsers for easy and fast editing
  • Source code generation
  • Reverse engineering from .NET assemblies (thanks to Malte Ried)
  • Configurable diagram styles
  • Printing / saving to image
  • Multilingual user interface
  • Mono support for non-Windows users

🚧 Some of the things to come

  • Bringing the NClass' support of C# and Java up-to-date with current version of the languages
  • Sequence diagrams
  • Use Case diagrams
  • Undo/Redo
  • Many more to come. If you have an idea, don't hesitate to open an issue

💬 Slack

If you have a discussion or talk about NClass, you can do it now on Slack too. Drop an email to nclass dot editor at gmail dot com with subject NClass to get an invite.

Please bear in mind that currently the response times on Slack are slow.

How to build

  • at root folder level run:

      git submodule sync --recursive
    
  • then go to < root >\src\AssemblyImport\lib\NReflect build nreflect with visual studio or run

      msbuild /p:Configuration=Debug /p:Platform="Any CPU"
    

    This implies that you have msbuild in your path.

  • build NClass with Visual Studio or msbuild

📃 License

NClass is totally free and licensed under the GNU General Public License.

nclass's People

Contributors

baltasarq avatar gbaychev avatar mrpetro avatar naf73 avatar superusercode avatar vcipher avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nclass's Issues

Selection improvements

For some odd reason you cannot add shapes to the current selection when holding shift. Nor can you exclude already selected elements (this is true for also holding ctrl). This should be changed

.net assembly class diagram

Hello

I'm very new to the program. Is it possible to make class diagram from .net assembly? How to do this?

Jessica

Import from assembly does not work (when it depends on other dll?)

I'm using Manjaro Linux with mono 6.10.

I have a project which consists of a main main.exe assembly and an util.dll one. When I import the assembly util.dll, it works okay, buy when importing the main.exe assembly, it crashes with the following (misleading?) stacktrace:

System.IO.FileNotFoundException: Resource 'down.bmp' was not found.
  at System.Drawing.Bitmap..ctor (System.Type type, System.String resource) [0x0004d] in <3ca78e922b044185b653d000a8e4d973>:0 
  at (wrapper remoting-invoke-with-check) System.Drawing.Bitmap..ctor(System.Type,string)
  at NClass.GUI.Dialogs.DetailsErrorDialog..ctor (System.Windows.Forms.MessageBoxIcon icon) [0x00006] in <89877bea8cb14088bcbdc573d7a3a51e>:0 
  at (wrapper remoting-invoke-with-check) NClass.GUI.Dialogs.DetailsErrorDialog..ctor(System.Windows.Forms.MessageBoxIcon)
  at NClass.GUI.Dialogs.DetailsErrorDialog.Show (System.String title, System.String message, System.String details, System.Windows.Forms.MessageBoxIcon icon, System.Boolean isCenteredOnParent) [0x00008] in <89877bea8cb14088bcbdc573d7a3a51e>:0 
  at NClass.AssemblyImport.NETImportPlugin.ImportAssembly (System.String fileName, NClass.DiagramEditor.ClassDiagram.ClassDiagram diagram, NClass.AssemblyImport.ImportSettings settings) [0x000a1] in <d3102a97ae5646e48164f70ae825aadc>:0 
  at NClass.AssemblyImport.NETImportPlugin.Launch () [0x0005e] in <d3102a97ae5646e48164f70ae825aadc>:0 
  at NClass.AssemblyImport.NETImportPlugin.menuItem_Click (System.Object sender, System.EventArgs e) [0x00000] in <d3102a97ae5646e48164f70ae825aadc>:0 
  at System.Windows.Forms.ToolStripItem.OnClick (System.EventArgs e) [0x00019] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at System.Windows.Forms.ToolStripMenuItem.OnClick (System.EventArgs e) [0x00090] in <313abb6e08e943459ea3b455bc2f9adb>:0
...

Add jump list to the UI

Use the Window Api Code Pack to implement jump lists.

A good start would be to add a task for each type of diagram, similar to this picture:
https://i.stack.imgur.com/ItoPT.jpg
If there is an open project, the chosen diagram will be added to the project, otherwise an empty, untitled project will be created and the diagram will be added to it.

The jump list should also contain a list to the most recent project files.

More comfortable ways to insert members etc.

Hello,

I feel uncomfortable with this Right-click > Edit members and then always add member/add method etc.

What about a huge text area where we can just insert C# code like this:

private int X;
private int Y;

public int GetX();
public int GetY();

I already read about issue #13 but I think it would be more comfortable to do it directly in NClass, especially if you haven't written the C# code already.

Yours sincerely.

python support

Hi

Can you add python language support please?

Jessica

Fix the code generator

Currently the code generator is using the model name to generate code. Since the model name is null, this is currently failing. The model should use the name of the diagram.

Copy past error

image

Тут ошибка, она не несёт никакого эффекта, потому что инвертирование зависимостей нужно в данной программе только для PDF, но в дальнейшем вы можете сталкнуться при замене GDI.


There is an error here, it has no effect, because the inversion of dependencies is needed in this program only for PDF, but in the future you may stumble upon replacing GDI.

Implement UML Packages ( C # namespaces & Java packages )

Feature request:
UML standard allows to create Packages in diagrams.
One package element can have member elements with various types (classes, interfaces and even other packages). Package can also have nested types and other packages
C # stereotype in UML is namespace
Java stereotype in UML is package

Few things have to be done here in order to implement this feature:

  • Create/add new package icon for "package" shape creation functionality in "DiagramsEditor" project resources
  • Implement Package shape with it's behavior in DiagramsEditor project. Package can have other packages and types nested. Package cannot be nested inside a type.
  • (Secondary) Implement Package shape behavior of putting type shapes (or other packages) inside a package shapes. This is just another way of representing nesting. In case of type or package shape being inside of package shape any movement and resizing parent package shape will affect the global diagram position of nested shapes. Basically coordinate system of nested shapes will be the parent shape coordinate system.
  • Implement "namespaces" code generation for "Packages" in C#
  • Implement "packages" code generation for "Packages" in Java

BTW: you can assign it to me because this work is near finished.
I've tried to use Project and issues creation on my Fork but turns out that the issue numbers are counted from hash1 which creates problems with history of issues. So I've decided to create an issue in main branch. Also I've read about different levels of access to branch features, So I could do more, like start projects on main branch instead of my fork. This is something to consider. And I'm sorry about writing this in an issue but I couldn't find any other way to contact repository owner.

Unable to open old projects after namespace feature(pre-release)

Hello,

This is about the problem that I found on pre-release installer :
#6 (comment)

I just noticed following after using pre-release version v2.6.0-pre :

1). I'm unable to open old projects on the pre-release version. Following error is displayed :
"Error: The save file is corrupt and could not be loaded."

2). NClass icon in taskbar is not visible, white/empty icon is displayed.

As @gbaychev suggested I'm uploading a sample file that I had problem with.
ClassDiagram.zip

Regards,
Vishwas

Predefined Styles are not shown in Options

I really like the improvement and bugfixes you have introduced to this project.

I installed the latest MSI (v2.6.0). In the options it seems that the predefined styles are not shown anymore. I checked the installation folder and there are two .dst files in the styles folder, However those are not shown in the list.

Redo the update mechanism of NClass

Currently when trying to update itself, NClass is looking at the old releases at sourceforge. This needs to be redone, so that the releases in github are checked.

Add support for Object Diagrams

The implementation of support for object diagrams as instances of class diagrams would be greatly appreciated.

Preferably in a way, where the correspondig class is visible but easily distinguishable from the object diagram.

Use roslyn for syntax validation

Currently the syntax validation is done via regex-es. It doesn't even function properly, as you cannot import the assemblies from Octokit for example. Roslyn should be a better tool for the job

Replace the vs2015 project template with vs2019 one

The CodeGenerator project uses templates to generate C# projects. Currently Visual Studio 2015 and 2017 are supported.

The support for vs2015 should be dropped and a csproj template for vs2019, for the classic .net (not core) framework must be added.

Can't read old NClass files

I don't know if this is intended, but I cannot open .ncp files created with the former version of NClass (I think it was 2.0.x, but I'm not sure as I uninstalled it). The error message says that "the save file is corrupt and could not be loaded".

Attached is a sample file.

Example.zip

Naming diagrams in in project is not strict enough

Currently its possible to create or rename two or more diagrams having same type and same name under one project.
2018-01-05 22_52_20-nclass running - microsoft visual studio

This may lead to odd behavior while code generation

There is also problem with using white characters and nonstandard characters in diagram names, since the diagram names are used in RootNamespace generation and the RootNamespace is used in code generation, which leads to bad code generation.
2018-01-05 22_58_44-untitled - paint

Two things can be done here:

  1. Restrict naming/renaming diagrams to use only characters allowed in namespace naming of C# and/or Java
  2. Separate Namespace as a Diagram setting which could be auto filled (and validated) on diagram naming (and then changed as an diagram property.)

C++ support

I would like to ask if you consider C++ language support. I love to use NClass and would very welcome it! :)

Add maven support

When generating java code, a maven project should be generated, not whatever it is in the moment.

Cannot execute NClass

I've changed my toolchain to mono's por of MSBuild, since mono's XBuild is deprecated and no longer supported in Rider. So, if I compile with XBuild then I get a few warnings, but it executed okay:

        Members/CSharpConstructor.cs(43,24): warning CS0612: 'LanguageElement.GetNameWithoutGeneric(string)' is obsolete
        Members/CSharpConstructor.cs(47,47): warning CS0612: 'LanguageElement.GetNameWithoutGeneric(string)' is obsolete
        Members/CSharpDestructor.cs(43,30): warning CS0612: 'LanguageElement.GetNameWithoutGeneric(string)' is obsolete
        Members/CSharpDestructor.cs(47,53): warning CS0612: 'LanguageElement.GetNameWithoutGeneric(string)' is obsolete
        Members/JavaConstructor.cs(43,24): warning CS0612: 'LanguageElement.GetNameWithoutGeneric(string)' is obsolete
        Members/JavaConstructor.cs(47,47): warning CS0612: 'LanguageElement.GetNameWithoutGeneric(string)' is obsolete
        Diagrams/Diagram.cs(2055,25): warning CS0612: 'DiagramElement.Deserialize(XmlElement)' is obsolete
        Diagrams/Diagram.cs(2064,25): warning CS0612: 'DiagramElement.Deserialize(XmlElement)' is obsolete

         8 Warning(s)
         0 Error(s)

The problem comes when I use MSBuild. Stranger warnings appear now:

    Translations:
    Microsoft.CSharp.CurrentVersion.targets(142, 9): [MSB3884] Could not find rule set file "AllRules.ruleset".

    Core:
    Microsoft.CSharp.CurrentVersion.targets(142, 9): [MSB3884] Could not find rule set file "AllRules.ruleset".

    NReflect:
    CSharpKeyWords.cs(21, 18): [CS1591] Missing XML comment for publicly visible type or member 'CSharpKeyWords'
    CSharpKeyWords.cs(105, 30): [CS1591] Missing XML comment for publicly visible type or member'CSharpKeyWords.DecorateIfKeyWord(string)'

    CSharp:
    Microsoft.CSharp.CurrentVersion.targets(142, 9): [MSB3884] Could not find rule set file "AllRules.ruleset".
    CSharpConstructor.cs(43, 24): [CS0612] 'LanguageElement.GetNameWithoutGeneric(string)' is obsolete
    CSharpDestructor.cs(43, 30): [CS0612] 'LanguageElement.GetNameWithoutGeneric(string)' is obsolete
    CSharpDestructor.cs(47, 53): [CS0612] 'LanguageElement.GetNameWithoutGeneric(string)' is obsolete
    CSharpConstructor.cs(47, 47): [CS0612] 'LanguageElement.GetNameWithoutGeneric(string)' is obsolete

   Java
   Microsoft.CSharp.CurrentVersion.targets(142, 9): [MSB3884] Could not find rule set file "AllRules.ruleset".
   JavaConstructor.cs(43, 24): [CS0612] 'LanguageElement.GetNameWithoutGeneric(string)' is obsolete
   JavaConstructor.cs(47, 47): [CS0612] 'LanguageElement.GetNameWithoutGeneric(string)' is obsolete

   CodeGenerator
   Microsoft.CSharp.CurrentVersion.targets(142, 9): [MSB3884] Could not find rule set file "AllRules.ruleset".

   DiagramEditor
   Microsoft.CSharp.CurrentVersion.targets(142, 9): [MSB3884] Could not find rule set file "AllRules.ruleset".
   Diagram.cs(2055, 25): [CS0612] 'DiagramElement.Deserialize(XmlElement)' is obsolete
   Diagram.cs(2064, 25): [CS0612] 'DiagramElement.Deserialize(XmlElement)' is obsolete

    GUI
    Microsoft.CSharp.CurrentVersion.targets(142, 9): [MSB3884] Could not find rule set file "AllRules.ruleset".

    PDFExport
    Microsoft.CSharp.CurrentVersion.targets(142, 9): [MSB3884] Could not find rule set file "AllRules.ruleset".

    AssemblyImport.Tests
    Microsoft.Common.CurrentVersion.targets(2101, 5): [MSB3245] Could not resolve this reference. Could not locate the assembly "System.Runtime, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

Anwyay these are only warnings, so no big deal. At least, not urgent. But then execution fails:

Unhandled Exception:
System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure "NClass.GUI.Properties.Resources.resources" was correctly embedded or linked into assembly "NClass" at compile time, or that all the satellite assemblies required are loadable and fully signed.
  at System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing (System.String fileName) [0x000bf] in <671ef0784b04474c83bb500a849492f2>:0 

(...)

This seems to be produced by another exception:

at System.Resources.ResourceManager.GetObject (System.String name, System.Globalization.CultureInfo culture, System.Boolean wrapUnmanagedMemStream) [0x00071] in <671ef0784b04474c83bb500a849492f2>:0 
  at System.Resources.ResourceManager.GetObject (System.String name, System.Globalization.CultureInfo culture) [0x00000] in <671ef0784b04474c83bb500a849492f2>:0 
  at NClass.GUI.Properties.Resources.get_Down () [0x00006] in <f65e2232b82243ef808354fa650c08a3>:0 
  at NClass.GUI.Dialogs.DetailsErrorDialog..ctor (System.Windows.Forms.MessageBoxIcon icon) [0x0001d] in <f65e2232b82243ef808354fa650c08a3>:0 
  at (wrapper remoting-invoke-with-check) NClass.GUI.Dialogs.DetailsErrorDialog..ctor(System.Windows.Forms.MessageBoxIcon)
  at NClass.GUI.Dialogs.DetailsErrorDialog.Show (System.String title, System.String message, System.String details, System.Windows.Forms.MessageBoxIcon icon, System.Boolean isCenteredOnParent) [0x0000f] in <f65e2232b82243ef808354fa650c08a3>:0 
  at NClass.GUI.Workspace.OpenProject (System.String fileName) [0x00037] in <f65e2232b82243ef808354fa650c08a3>:0 
  at NClass.GUI.Workspace.Load () [0x0003b] in <f65e2232b82243ef808354fa650c08a3>:0 
  at NClass.GUI.Program.LoadFiles (System.String[] args) [0x0004b] in <f65e2232b82243ef808354fa650c08a3>:0 
  at NClass.GUI.Program.Main (System.String[] args) [0x00045] in <f65e2232b82243ef808354fa650c08a3>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure "NClass.GUI.Properties.Resources.resources" was correctly embedded or linked into assembly "NClass" at compile time, or that all the satellite assemblies required are loadable and fully signed.
  at System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing (System.String fileName) [0x000bf] in <671ef0784b04474c83bb500a849492f2>:0 
  at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet (System.Globalization.CultureInfo culture, System.Collections.Generic.Dictionary`2[TKey,TValue] localResourceSets, System.Boolean tryParents, System.Boolean createIfNotExists, System.Threading.StackCrawlMark& stackMark) [0x000d9] in <671ef0784b04474c83bb500a849492f2>:0 
  at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo requestedCulture, System.Boolean createIfNotExists, System.Boolean tryParents, System.Threading.StackCrawlMark& stackMark) [0x00099] in <671ef0784b04474c83bb500a849492f2>:0 
  at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, System.Boolean createIfNotExists, System.Boolean tryParents) [0x00002] in <671ef0784b04474c83bb500a849492f2>:0 
  at System.Resources.ResourceManager.GetObject (System.String name, System.Globalization.CultureInfo culture, System.Boolean wrapUnmanagedMemStream) [0x00071] in <671ef0784b04474c83bb500a849492f2>:0 
  at System.Resources.ResourceManager.GetObject (System.String name, System.Globalization.CultureInfo culture) [0x00000] in <671ef0784b04474c83bb500a849492f2>:0 
  at NClass.GUI.Properties.Resources.get_Down () [0x00006] in <f65e2232b82243ef808354fa650c08a3>:0 
  at NClass.GUI.Dialogs.DetailsErrorDialog..ctor (System.Windows.Forms.MessageBoxIcon icon) [0x0001d] in <f65e2232b82243ef808354fa650c08a3>:0 
  at (wrapper remoting-invoke-with-check) NClass.GUI.Dialogs.DetailsErrorDialog..ctor(System.Windows.Forms.MessageBoxIcon)
  at NClass.GUI.Dialogs.DetailsErrorDialog.Show (System.String title, System.String message, System.String details, System.Windows.Forms.MessageBoxIcon icon, System.Boolean isCenteredOnParent) [0x0000f] in <f65e2232b82243ef808354fa650c08a3>:0 
  at NClass.GUI.Workspace.OpenProject (System.String fileName) [0x00037] in <f65e2232b82243ef808354fa650c08a3>:0 
  at NClass.GUI.Workspace.Load () [0x0003b] in <f65e2232b82243ef808354fa650c08a3>:0 
  at NClass.GUI.Program.LoadFiles (System.String[] args) [0x0004b] in <f65e2232b82243ef808354fa650c08a3>:0 
  at NClass.GUI.Program.Main (System.String[] args) [0x00045] in <f65e2232b82243ef808354fa650c08a3>:0 

Specifically, from the DetailsErrorDialog. NClass seems to be trying to complain about something, but it is finally unable to.
Could you shed some light?

Classes that implement an interface don't have to adhere to the interface

When defining an interface and then define a class that implements that interface, there does not appear to be any restrictions to enforce that the class does, in fact, implement that interface.

It would also be helpful if I could right click on an interface entity and say 'create a class implementing this interface'.

Or am I missing some of the functionality?

Creating elements with same name in one diagram is not strict enough

Current NClass allows to have elements (doesn't matter what type they are) having same name under one diagram. This leads to very odd situations when trying to delete or copy elements with duplicated names. It also causes bad code to be generated for C# and Java.
Following picture shows rules that elements naming should follow:
duplicated naming rules

Create and submit a ubuntu/debian package

Create and submit a ubuntu/debian package

  • Check the submission process for debian
  • Check the submission process for ubuntu
  • Create the package
  • Integrate with TravisCI

Check the assembly importer

It seems that the assembly importer has some troubles displaying a list, where the user can selected which classes should be imported and which not. This should be investigated.

Implement undo/redo

Implement undo/redo functionality. In order for this to function, the Command pattern will be implemented.

The MVP will contain the following

Command Implemented
DeleteElementsCommand
ChangePropertyCommand
AddConnectionCommand
AddMemberCommand
AddShapeCommand
MoveElementsCommand
PasteCommand
DeleteMemberCommand
AddEnumValueCommand
RenameEnumValueCommand
DeleteEnumValueCommand
AddDelegateParameterCommand
RenameDelegateParameterCommand
DeleteDelegateParameterCommand

Text garbled due to Source code encoding.

Hi, "CSharpNamespace.cs" or some source codes are saved as ISO-8859-1, so Identifier text like stereotype have '<<' and '>>' characters are garbled at non-latin country.
Please save source code as UTF-8. ('<<' 0xAB will convert to U+226a)

image

Add support for the Dart language.

I wish to update NClass to also support Googles Dart language with the addition of class diagrams for Dart and code generation for Dart.

To that end I have forked the repo here where the changes I've added can be found on the 'dart' branch.

As of now I have added support for class diagrams specialized for the Dart language in a similar manner to those for C# and Java. the next step is to look at code generation.

I'll update this issue as I progress

Release 2.8.0 "nclass.zip" is wrongly built

When you extract the file, instead of resulting in a folder structure with the "bin", "plugins", etc. directories, you have the files with their complete name:

  • bin\NClass.exe
  • Plugins\PDFExport.dll

And so on. It seems that the backslash is hard coded or something.
I was able to recreate the folder structure and removed the prefixes using the "rename" command present in linux (I can send it to you if it is of any help).

Error: The save file is corrupt and could not be loaded

Project file gets corrupted at... some point.
NClass 2.7.0
It is corrupted when migrated from original sourcefoge version, that is a file created with original version and then opened with version 2.7.0 modified and saved gets corrupted.
The same thing happens when a completely new file is created. After adding element (about 20 elements on a single class diagram) and saved, file cannot be opened even though it could be opened before.

No Undo Redo feature

I have difficulties to find undo and redo feature on windows. Do the said feature is not implemented?

Cannot generate PDF

I'm using Manjaro Linux with mono 6.10.

When trying to generate PDF, and after clicking Ok in the dialog, NClass crashes with the following stack trace:

System.EntryPointNotFoundException: GetDC assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) PdfSharp.Internal.NativeMethods.GetDC(intptr)
  at PdfSharp.Fonts.OpenType.FontData.CreateGdiFontImage (PdfSharp.Drawing.XFont font, PdfSharp.Drawing.XPdfFontOptions options) [0x00020] in <2a80a7aa909f4f4394d33f68c6061743>:0 
  at PdfSharp.Fonts.OpenType.FontData..ctor (PdfSharp.Drawing.XFont font, PdfSharp.Drawing.XPdfFontOptions options) [0x00011] in <2a80a7aa909f4f4394d33f68c6061743>:0 
  at PdfSharp.Fonts.OpenType.OpenTypeDescriptor..ctor (PdfSharp.Drawing.XFont font, PdfSharp.Drawing.XPdfFontOptions options) [0x00028] in <2a80a7aa909f4f4394d33f68c6061743>:0 
  at PdfSharp.Fonts.OpenType.OpenTypeDescriptor..ctor (PdfSharp.Drawing.XFont font) [0x00008] in <2a80a7aa909f4f4394d33f68c6061743>:0 
  at PdfSharp.Fonts.FontDescriptorStock.CreateDescriptor (PdfSharp.Drawing.XFont font) [0x00046] in <2a80a7aa909f4f4394d33f68c6061743>:0 
  at PdfSharp.Drawing.XFont.get_Metrics () [0x0000d] in <2a80a7aa909f4f4394d33f68c6061743>:0 
  at PdfSharp.Drawing.XFont.Initialize () [0x0007e] in <2a80a7aa909f4f4394d33f68c6061743>:0 
  at PdfSharp.Drawing.XFont..ctor (System.String familyName, System.Double emSize, PdfSharp.Drawing.XFontStyle style) [0x00026] in <2a80a7aa909f4f4394d33f68c6061743>:0 
  at PDFExport.PDFGraphics.FontToXFont (System.Drawing.Font font) [0x0001f] in <ed3dc674d55a465cadf7d0f8ef13bd98>:0 
  at PDFExport.PDFGraphics.DrawString (System.String s, System.Drawing.Font font, System.Drawing.Brush brush, System.Drawing.RectangleF layoutRectangle, System.Drawing.StringFormat format) [0x00008] in <ed3dc674d55a465cadf7d0f8ef13bd98>:0 
  at NClass.DiagramEditor.ClassDiagram.Shapes.TypeShape.DrawHeaderText (NClass.DiagramEditor.IGraphics g, NClass.DiagramEditor.Style style) [0x0015a] in <6ebb94798b114ed1b331f3764e45c037>:0 
  at NClass.DiagramEditor.ClassDiagram.Shapes.TypeShape.Draw (NClass.DiagramEditor.IGraphics g, System.Boolean onScreen, NClass.DiagramEditor.Style style) [0x00009] in <6ebb94798b114ed1b331f3764e45c037>:0 
  at NClass.DiagramEditor.Diagrams.Diagram`1[T].Print (NClass.DiagramEditor.IGraphics g, System.Boolean selectedOnly, NClass.DiagramEditor.Style style) [0x000ef] in <6ebb94798b114ed1b331f3764e45c037>:0 
  at PDFExport.PDFExporter.Export () [0x00147] in <ed3dc674d55a465cadf7d0f8ef13bd98>:0 
  at PDFExport.PDFExportPlugin.Launch () [0x0012c] in <ed3dc674d55a465cadf7d0f8ef13bd98>:0 
  at PDFExport.PDFExportPlugin.menuItem_Click (System.Object sender, System.EventArgs e) [0x00000] in <ed3dc674d55a465cadf7d0f8ef13bd98>:0 
  at System.Windows.Forms.ToolStripItem.OnClick (System.EventArgs e) [0x00019] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at System.Windows.Forms.ToolStripMenuItem.OnClick (System.EventArgs e) [0x00090] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at System.Windows.Forms.ToolStripMenuItem.HandleClick (System.Int32 mouse_clicks, System.EventArgs e) [0x00000] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at System.Windows.Forms.ToolStripItem.FireEvent (System.EventArgs e, System.Windows.Forms.ToolStripItemEventType met) [0x00054] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.ToolStripItem.FireEvent(System.EventArgs,System.Windows.Forms.ToolStripItemEventType)
  at System.Windows.Forms.ToolStrip.OnMouseUp (System.Windows.Forms.MouseEventArgs mea) [0x00048] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at System.Windows.Forms.ToolStripDropDown.OnMouseUp (System.Windows.Forms.MouseEventArgs mea) [0x00000] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at System.Windows.Forms.Control.WmLButtonUp (System.Windows.Forms.Message& m) [0x00078] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x001b4] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at System.Windows.Forms.ToolStrip.WndProc (System.Windows.Forms.Message& m) [0x00000] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at System.Windows.Forms.ToolStripDropDown.WndProc (System.Windows.Forms.Message& m) [0x00017] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x0000b] in <313abb6e08e943459ea3b455bc2f9adb>:0 
  at System.Windows.Forms.NativeWindow.WndProc (System.IntPtr hWnd, System.Windows.Forms.Msg msg, System.IntPtr wParam, System.IntPtr lParam) [0x00085] in <313abb6e08e943459ea3b455bc2f9adb>:0

Improve the tab bar

Add icons and close button on the tabs, so that it is easier to differentiate between diagrams. Remove the close button on the top right of the tab bar.

Zoom level label displaced in GUI

I'm using Manjaro Linux with Mono 6.10.
This issue is probably related to Mono/Linux.
Very low importance.

As you can see below, the zoom label is misplaced, maybe somehow overflown.

nclass

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.