internal static string getFilterString(System.Windows.Controls.Canvas processModelCanvas, MatrixSelection.Fields.Field selectedField)
        {
            StringBuilder filterString = new StringBuilder("");

            //PNG, JPEG, BMP, GIF, TIFF
            if (processModelCanvas!=null)
            {
                filterString.Append("PNG Image|*.png|JPEG Image|*.jpeg|Bitmap Image|*.bmp|GIF Image|*.gif|TIFF Image|*.tiff");
            }

            //DOT, PNML
            if (selectedField != null && selectedField.ProcessModel != null)
            {
                if (filterString.Length > 0) filterString.Append("|");
                filterString.Append("DOT (GraphViz)|*.dot|Petri Net Markup Language (PNML)|*.pnml");
            }

            //MXML
            if (selectedField != null && selectedField.EventLog != null)
            {
                if (filterString.Length > 0) filterString.Append("|");
                filterString.Append("Mining eXtensible Markup Language (MXML)|*.mxml");
            }

            return filterString.ToString();
        }
        public static IExporter createExporter(String filetype, System.Windows.Controls.Canvas canvas, MatrixSelection.Fields.Field selectedField)
        {
            switch (filetype)
            {
                case ".bmp":
                case ".png":
                case ".jpeg":
                case ".gif":
                case ".tiff":
                    return new ImageExporter(filetype, canvas);
                case ".mxml":
                    return new MXMLExporter(selectedField.EventLog);
                case ".pnml":
                    return new PNMLExporter(selectedField.ProcessModel);
                case ".dot":
                    return new DotExporter(selectedField.ProcessModel);
            }

            throw new NotImplementedException("No exporter available for the filetype: "+filetype);
        }