Git Product home page Git Product logo

darwinne / fidocadj Goto Github PK

View Code? Open in Web Editor NEW
111.0 13.0 40.0 103.33 MB

FidoCadJ is a free user-friendly vector graphic editor for MacOSX, Linux, Windows and Android with a library of electronic symbols.

Home Page: http://darwinne.github.io/FidoCadJ/

License: GNU General Public License v3.0

Shell 0.87% HTML 1.46% Python 0.09% Java 71.60% TeX 25.84% Batchfile 0.11% Makefile 0.03%
vector-graphics electronic-circuit 2d-graphics multiplatform drawing-app

fidocadj's Introduction

README file for FidoCadJ

Version 0.24.8

Copyright 2007-2023

This file has been written by Davide Bucci and Dante Loi

  1. Introduction
    • 1.1 What is FidoCadJ?
    • 1.2 Where can I find FidoCadJ?
    • 1.3 How can I run FidoCadJ?
    • 1.4 Where can I get help?
  2. Source files and the FidoCadJ Git directories
    • 2.1 Main directory
    • 2.2 Important classes
    • 2.3 Developers' tools
  3. Instructions about compiling and running FidoCadJ
    • 3.1 Build automation tool
    • 3.2 Compile and run the sources on a macOS or a Unix operating system
    • 3.3 Compile and run the sources on a Windows system
    • 3.4 Android
  4. Coding conventions
    • 4.1 General rules
    • 4.2 Automated tests
    • 4.3 Static code analysis and the quality of the FidoCadJ source code
  5. Help wanted!
    • 5.1 "I want to translate FidoCadJ in my language"
    • 5.2 "I would like to participate to the coding activity"
    • 5.3 Things to do
    • 5.4 Checklist for committers
  6. I found a bug...
  7. Acknowledgments
  8. Licensing

1 - Introduction

1.1 What is FidoCadJ?

FidoCadJ is an easy to use editor, with a vast library of electrical symbols and footprints (through hole and SMD). Its drawings can be exported in several graphic formats (PDF, EPS, PGF for LaTeX, SVG, PNG, JPG). Even though it is very simple to use, FidoCadJ can be useful as a basic schematic capture and electronic design automation (EDA) software. FidoCadJ is inspired from the old FidoCAD (without "J"), which was a vector graphic editor for electrical schematics and printed circuit boards. FidoCAD used a file format containing text, very compact and perfect for copying and pasting from/into newsgroups and forum messages. This determined its success among the Italian Usenet community and forums, from late '90s, as it was quite versatile for simple mechanical drawings as well. No netlist concept lies behind the drawings, so there is all the graphical flexibility that a vector drawing software can offer (but no simulation).

FidoCadJ is the modern, multiplatform successor of FidoCAD, with full support of UTF-8 text, advanced features, internationalisation and a sleek, polished user interface with anti-aliasing.

The FidoCadJ user manual is available in English. Translations in French, Italian, Dutch and Chinese are available, but may not have been updated regularly. The user interface has been translated into English, French, Italian, Spanish, German, Chinese, Dutch, Japanese, Greek and Czech.

FidoCadJ runs on the following systems:

  • Windows Seven, 8, 10, 11
  • All major distributions of Linux.
  • macOS 10.8 and following
  • Android 4.0 or more recent devices.

At least version 1.9 of Java is required for Windows, Linux and macOS.

1.2 Where can I find FidoCadJ?

Here are the two official FidoCadJ websites. The first one is the generic website presenting the project:

http://darwinne.github.io/FidoCadJ/index.html

The second one is the GitHub project, for developers:

https://github.com/DarwinNE/FidoCadJ

1.3 How can I run FidoCadJ?

If you own a PC running Linux or Windows (or any system supporting Java), you may download from the GitHub repository the file fidocadj.jar. If Java is correctly installed on your machine, you may just double click on it to run FidoCadJ. If you are a command line wizard, you may go to the directory where the file fidocadj.jar has been saved and type:

java -jar fidocadj.jar

If you are a Linux user, and you want install FidoCadJ, you may download from GitHub repository the source code packed on .zip or .tar.gz archive, unpack it, and in the FidoCadJ-x.xx.x/ directory type:

make
sudo make install

If you use Windows, you might find useful to use the classical installer contained in the FidoCadJ_Windows.msi file. If you run it, it will install FidoCadJ on your system and you can launch it via the Start menu.

If you own an Apple Macintosh with macOS, you may download the FidoCadJ_MacOSX.dmg bundle and treat it just like any other native application. Since Apple does not seem to keen to support Java, if you experience some problems running FidoCadJ, please check you do have a Java runtime correctly installed on your Mac. This is particularly true if you are using the macOS Lion/Mountain Lion/Mavericks/etc. operating system. Normally, you will have to download the Java runtime in a few clicks. I tried my best, but the situation in 2007 was different from the current one and Apple used to warmly welcome Java developers back then...

If you just have to run the application bundle and not develop code, you will not need to install Java as everything needed is already contained in the application, that is self-sufficient. Unfortunately, the gatekeeper function of the last operating systems may show a very misleading error when trying to execute it. Something like "FidoCadJ.app is damaged and can’t be opened. You should move it to the Trash". I have nothing against an operating system that warns an unexperienced user against executing code downloaded from the internet, but the error can not be so misleading and should at least point the user towards the origin of the problem!

Here is the relevant GitHub issue: #198

I tried downloading FidoCadJ 0.24.8 on a brand new MacBook Pro M2 running macOS Ventura 13.3. At first the system asks to download and install Rosetta. Then, here is the error shown on by the French macOS Ventura 13.3 OS:

Application is damaged

To fix this I had to do three things:

1 - Open a terminal and type xattr -c /Applications/FidoCadJ.app (if you have already copied FidoCadJ.app on the Applications folder. Otherwise, specify the path to the file in your system.) You must have admin access to the computer to do this and you may have to authorize the Terminal.app application to modify the files in the directory you are working. 2 - Right click on the executable and select "open". 3 - Then, the system asks me if I really want to run the software (downloaded on an untrusted source). I selected "Yes" (at your risk and peril!)

The xattr stuff is required because macOS activates the extended attribute "quarantine" on the downloaded file. The system refuses to run software with this attribute and shows the error. The error is very misleading because it lets the user think that the archive is corrupted even if it is not the case!

If you have a way to solve this problem that does not require accessing to the terminal, please participate to the GitHub issue linked above.

For Android, we had to develop a completely new application: you should download and install the APK file containing it. Most devices complain loudly when you install a file which does not come from a store. Check carefully where you downloaded it: the ONLY official location where distribution files are put for FidoCadJ project is on the official GitHub page.

If there is a Greek letter after the version number of FidoCadJ, this means that you are using a preliminary version of this program. Basically, you are warned: those versions may be unstable!

FidoCadJ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

1.4 Where can I get help?

If you feel lost, you can have a look at the manuals. Languages different from English might be outdated or no more listed:

https://github.com/DarwinNE/FidoCadJ/releases

(search for the PDF files!)

If you need help, you can post a question as a GitHub issue.

2 - Source files and the FidoCadJ Git directories

You may download the complete source repository by using Git from the GitHub repository.

git clone https://github.com/DarwinNE/FidoCadJ.git

2.1 Main directory

In the following table you find a description of the main directory of FidoCadJ source files.

File DIR Comments
bin/ X All the compiled classes and resources
busy being born/ X Screenshots of FidoCadJ
dev_tools X Developers' tools for compile, run and test
doc/ X Contains all Javadoc produced HTML files
gpl-3.0.txt GNU General Public Licence version 3
icons/ X All icons (made with Gimp)
jar/ X Directory for jar and manifest files
makefile File which defines automated build system rules
manual/ X All the LaTeX manuals sources
NEWS.txt The big news, for each version tagged
OSes/ X Specific things for some OSes; Android app here
README.md This file
SECURITY.md Security policies
src/ X Contains all the Java source files
test/ X Automated tests for FidoCadJ

2.2 Important classes

Important classes in src/fidocadj/ are:

Path Description
FidoMain.java Starting point, with "main"
FidoFrame.java Editor windows
primitives/*.java The graphic primitives
dialogs/*.java All the Swing dialogs
circuit/CircuitPanel.java Swing editor panel
circuit/* Low level editing classes (MVC)

2.3 Developers' tools

The dev_tools directory, contains all the scripts to compile, build, run and test FidoCadJ.

Tool Description
checkstyle.sh Launch Checkstyle with rules in rules.xml
clean Erase all the compiled classes
cleanall Do a clean, erase fidocadj.jar, Javadocs
compile Compile FidoCadJ
count Do a wc (word count!) on all Java sources
createdoc Run Javadoc on all source files
createjar Prepare fidocadj.jar
createdist-macos Create a distribution package for MacOS
fidocadj_check.txt Current result of checkstyle.sh
fidocadj_cpd.txt Current result of copy/paste detector (pmd)
fidocadj_pmd.html Current result of pmd checks
pmd.sh Launch pmd for warnings and copy/paste detector
profile Launch a profiler (jip)
rules.xml Set of coding style rules for Checklist
run Run FidoCadJ
sign.sh Create the signature for the applet
winbuild.bat Build and run script for Windows (see Β§3.2)

3 - Instructions about compiling and running FidoCadJ

Ok, you just forked the FidoCadJ project in GitHub.

Good πŸ˜„

FidoCadJ is a pure Java project, and for many reasons we prefer to use a good text editor as well as a few command line scripts, in order to compile and run the code on which we are working. You will thus find in the main directory (see section 2 of this file) several scripts which will be useful for you, especially if you are working in a Unix-like environment. If you prefer to use some kind of IDE such as Eclipse, you may try, but we do not provide assistance with those IDE's and we will always refer to the scripts we wrote. And no, we will not change our habits, sorry πŸ˜„

3.1 Build automation tool

The FidoCadJ project has a build automation system, based on make. The tabled make rules have been implemented.

Rule Description
make Compile FidoCadJ (implicit)
make clean Erase all the compiled classes
make cleanall Do a clean, erase fidocadj.jar, Javadocs
make compile Compile FidoCadJ (explicit)
make createdoc Run Javadoc on all source files
make createjar Prepare jar/fidocadj.jar
make rebuild Do a clean and then run FidoCadJ
make run Run FidoCadJ

3.2 Compile and run the sources on a macOS or a Unix operating system

If you are using macOS (>=10.8) or an Unix system (GNU/Linux included), just open up a terminal window, go into the main directory of FidoCadJ and type:

make rebuild

FidoCadJ should be automatically compiled and launched. You can use the following script to create a JAR archive in the jar/ directory:

make createjar

If you want to study the FidoCadJ source code, run the make createdoc script to obtain the Javadoc description.

3.3 Compile and run the sources on a Windows system

The provided scripts do not work on Microsoft Windows. Kohta Ozaki has written a build/run script for Windows, called winbuild.bat that is present in the dev_tools directory. It must be used with the action to be accomplished, as an argument:

Argument Description
run Launch application
clean Delete all class files under .\bin
compile Compile FidoMain.java and related sources1
force Compile source files of all directories2
rebuild Clean and compile

Alternatively, you can manually compile with the following command, in the main directory:

javac  -g -sourcepath src -classpath bin .\src\fidocadj\FidoMain.java -d bin

To launch the compiled program, you should type:

java  -classpath .\bin;.\jar;.\jar\  FidoMain

FidoCadJ should start.

3.4 Android

Android deserves an application which is well separated from the one you can use on a PC or on a Mac: a smartphone or a table is a quite different device than a laptop or a desktop computer. Therefore, a lot of effort had to be put in the development of an appropriate Android app.

You can find the complete sources in OSes/android/fidocadj/; there is a separate README.md file which gives some relevant information.

Great care has been put in sharing as much code as possible between the computer application and the Android one. Therefore, you will always find their release numbers synchronized.

4 - Coding conventions

For those who want to work on the FidoCadJ source code please use the following coding style conventions.

4.1 General rules

The following coding conventions have been applied for the FidoCadJ source code:

  • the code should be compatible with Java 14
  • indent properly, using 4 spaces πŸ†—
  • no tabulation character allowed in sources πŸ†—
  • no trailing spaces πŸ†—
  • blocks delimited by curly braces are indented as follows:
for(i=0; i<10; ++i) {   // Curly brace here
    // indented code (4 spaces)
    System.out.println("I counted up to "+i);
}   // close brace here at the same level of the 'for'
  • methods are indented as follows: πŸ†—
void dummy(int i, int j)
{   // put the starting brace here
    System.out.println("Indent code");
}   // put the closing brace here
  • classes and interfaces are indented as follows: πŸ†—
class Dummy
{                           // Curly brace here.
    // the rest of the class.
}
  • switches are indented as follows: πŸ†—
int dummy(int i)
{
    int j;
    switch(i) {
        case 1:
            j=3;
            break;
        case 2:
            j=2;
            break;
        default:
            j=0
    }
    return j;
}
  • if an if condition spans over multiple lines, put the brace on the following line πŸ†—
  • the class names always start with a capital letter πŸ†—
  • variables never start with a capital letter πŸ†—
  • methods never start with a capital letter πŸ†—
  • public classes must be documented with Javadoc syntax πŸ†—
  • public methods must be documented with Javadoc syntax πŸ†—
  • no lines longer than 80 characters πŸ†—
  • Unix-style for newlines is mandatory πŸ†—
  • employing _ in names of types or variables is deprecated πŸ†—
  • commits should not break the build
  • each commit MUST include a log
  • favor simplicity to unnecessary complication
  • favor quality to quantity
  • discuss what you want to do BEFORE start coding
  • documentation is important. Try to improve it and keep it up-to-date

A Checkstyle ruleset (called dev_tools/rules.xml) is employed so to ensure that those rules will be automatically checked. Points for which a rule has been activated have been marked with πŸ†— in the previous list.

Be sure to run checkstyle with dev_tools/rules.xml before sending a pull request! Have a look at paragraph 4.4 and follow the checklist!

4.2 Automated tests

To main a certain degree of quality control when working on the source code, the FidoCadJ source repository comes with a number of automated test scripts contained in the directory test/. You may launch all the tests by using the script dev_tools/all_tests.sh contained in this directory, or you may run the tests individually by browsing the sub-directories containing them. The program is called by using the fidocadj.jar archive which must be contained in the jar/ directory. Ensure that this archive is updated with the make createjar rule before launching any test.

The following list briefly describes the provided tests:

test/all_tests.sh : Run all the available tests.

test/export/test_export.sh : Test the export on all available file formats. A set of reference files is provided, so it might be updated if differences on the export are introduced on purpose. If a test has failed, this tells just that the exported file is not identical to the model which has been used. You may have a look at the log file and at the result of the export. You may decide that it is OK.

test/messages/test_messages.sh : Test the coherence of all the installed interface languages against the reference (which is the English resource file!)

test/size/test_size.sh : Test if the size calculated for all elements is the same as the one stored as a reference. Any change to the way the size is calculated will invalidate the test if the size is invalid.

Note that the way those tests are written, they compare the results of an operation involving FidoCadJ with a reference. In some cases, the reference can be improved or updated. In other cases, the differences might just contain unimportant data (such as version numbers and so on).

4.3 Static code analysis and the quality of the FidoCadJ source code

Static code analysis is a powerful tool to ensure code quality. It cannot do miracles, but it is an useful way to avoid common errors. Two tools are routinely used to ensure that FidoCadJ is of the highest quality possible. They are PMD and FindBugs; those programs are different and somewhat complementary.

PMD works on the source files directly (see the dev_tools/pmd.sh script) and the results are contained in the file dev_tools/fidocadj_pmd.html. This file is contained in the source file repository and it provides a sort of a traceable metric of the overall code quality. A copy/paste detection in the code is performed too and the results are stored in dev_tools/fidocadj_cpd.txt. Effort will be done to reduce the size of those files in the future.

FindBugs runs interactively and analyzes the JAR file resulting after the compilation and packaging. The great care applied to the code quality has made sure that FidoCadJ has had some good results in a quality assessment analysis done by researchers working in the Department of Computer Science of the University of Saskatchewan.

If you work on FidoCadJ code, please do all your best to keep high the quality of the code you are writing.

As already presented in section 4.1, another tool is employed to ensure that the coding style is uniform: Checkstyle. The coding rules for Checkstyle are specified in the dev_tools/rules.xml file. Be sure you run Checkstyle with this ruleset to see what it has to be corrected before creating a pull request.

5 - Help wanted!

I am seeking for people interested in participating to the FidoCadJ project. If you spot a typo (I am not a native English speaker), or an error in the manual or in the program, any correction is very welcome. I will be very happy to know what do you think about FidoCadJ. I would be glad to receive some help: if you know Java and you want to work on the source code you will be welcome. If you are not fluent with Java coding, you can participate to the project by improving the manuals or translating the interface, or just giving an advice. Feel free to contact me at [email protected], or in the GitHub discussions (the email address is valid without the nope part, but no attachments, please). It is probably better to open a discussion on GitHub, in order that the work can eventually be shared and organised between all developers.

5.1 "I want to translate FidoCadJ in my language"

FidoCadJ is written in such a way that translating its interface is particularly easy and does not need any programming skill. If you have downloaded the source file repository, you should find the interface resource files in the bin/ directory. A language resource file has the name MessagesBundle_xx.properties, where xx is the code for the language to which the translation is targeted. Language code should follow ISO 639-1.

If you have a look at the beginning of the file bin/MessagesBundle_en.properties, you should read something as follow:

File = File
New = New
Open = Open file
Save = Save
SaveName = Save as...
Export = Export
Print = Print
Close = Close

...

The resources strings are organised in the form key = value. For example, here is the head of the corresponding file for the interface in French, in the file bin/MessagesBundle_fr.properties:

File = Fichier
New = Nouveau dessin
Open = Ouvre un fichier
Save = Enregistrer
SaveName = Enregistrer sous un autre nom
Export = Exporter
Print = Impression
Close = Fermer

...

That is all. If you want to translate FidoCadJ in your language, you just have to translate line by line the values in a language resource file, name it accordingly for your locale and place it in the bin/ directory. Pay attention that sometimes there are spaces at the end of the value strings which need to be kept in place. You may be careful about always providing complete files, since if a resource is missing, FidoCadJ can abort.

5.2 "I would like to participate to the coding activity"

This is very nice of you. We will be happy for that.

You can open an issue on GitHub and declare what you would like to do. We will discuss a little in order to see if we can find an intersection between what you can do with the FidoCadJ development strategy. The idea is to keep the work a little bit organised and to know who does what.

Have a peek to section 4.1 of this README.md file to see what coding style should be applied to the sources.

Apart from that, FidoCadJ is GPL v.3 and this means that if you have the mood , you can download with Git the source files and play as you want with them. But keep in mind that if you want your contributions be included in the FidoCadJ main stream, you MUST keep in touch with us via GitHub and you must discuss about what are you willing to do.

Once you decide what you want to do, you can run the Javadoc utility in order to get an HTML description of all classes used in FidoCadJ. You will find that useful to understand the underpinnings of the program. To do that, you can run make createdoc, if you are in a Unix system.

Then comes the hard work... We can help you! Please come to the GitHub discussions dedicated to FidoCadJ!

5.3 Things to do

Translate user interface : Everything is done on FidoCadJ to make it easy to translate its interface in any language. You can contribute to spread FidoCadJ in your country!

Translate manual : This is an hard work, but it will be very welcomed by the users of your country. You will probably need an idea on how LaTeX works.

YouTube video tutorial : People love YouTube videos!

Report bugs : Use the bug and artifact tracking system on GitHub.

Export in Gerber format : Exporting in graphical vector formats is easy with FidoCadJ. If you want to add a file format you just need to know it and implement a Java interface. Gerber is highly requested by people working on PCBs.

Unit testing : Actually, only high level tests are available. Serious unit testing would be much beneficial.

Linux packaging : FidoCadJ could be distributed as a deb or a RPM package. Can you prepare one?

5.4 Checklist for committers

For the PC and Android app:

  • The code does not break the build for both PC and Android apps.
  • The coding style is conform to paragraph 4.1 of this README.
  • Comments have been added at the relevant places and are up-to date.
  • I ran Checkstyle with dev_tools/rules.xml and no issues are reported.

For the PC app:

  • A JAR file has been generated and automated tests have been run.
  • PMD analysis has been run on the code.

6 - I found a bug...

Every program contains bugs and FidoCadJ is no exception. Even if all the people involved in the development of FidoCadJ pay a lot of attention at each release, some details could just go unnoticed. If you are familiar with the GitHub interface, do not hesitate to fill a bug report at the following address:

https://github.com/DarwinNE/FidoCadJ/issues

7 - Acknowledgments

Code : Davide Bucci, josmil1, phylum2, Kohta Ozaki, Dante Loi, miklos80

Beta testers : Kagliostro, Bruno Valente, simo85, Stefano Martini, F. Bertolazzi, Emanuele Baggetta, Celsius, Andrea D'Amore, Olaf Marzocchi, Werner Randelshofer, Zeno Martini, Electrodomus, IsidoroKZ, Gustavo ... and many others!

Documentation review : Carlo Stemberger, Dante Loi (README.md)

Translations : Davide Bucci (it, en, fr), Pasu (en), Olaf Marzocchi (ge), Geo Cherchetout (fr), androu1 (es), sbcne (es), Miles Qin "qhg007" (zh), DirtyDeeds (en), chokewood (nl), Kohta Ozaki (ja), Chemik582 (cs), Pietro Baima (it), simo85 (es)

Libraries : Lorenzo Lutti, Fabrizio Mileto, DirtyDeeds, Electrodomus, IHRaM group, EY group coordinated by simo85

Website : Davide Bucci, Federica Garin, Emanuele Baggetta, Sergio Juanez

Code snippets included in FidoCadJ : - http://www.centerkey.com/java/browser/ - http://www.cse.unsw.edu.au/~lambert/splines/natcubic.html - http://jroller.com/santhosh/entry/enhanced_scrolling_in_swing - http://www.thoughtsabout.net/blog/archives/000044.html - http://www.javareference.com/jrexamples/viewexample.jsp?id=99 - http://elliotth.blogspot.com/2004/09/cocoa-like-search-field-for-java.html - http://stackoverflow.com/questions/3775694/deleting-folder-from-java

When possible, the authors of the snippets have been contacted to gain explicit permission of using the code in an open source project. If you own the copyright of some of the reused code and you do not agree on its inclusion in the FidoCadJ project, open an Issue on GitHub and we will remove the offending code as fast as we can.

8 - Licensing

FidoCadJ is distributed with the GPL v. 3 license:

FidoCadJ is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

FidoCadJ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with FidoCadJ.  If not, see <http://www.gnu.org/licenses/>.

The file glyphlist.txt employed for the export towards the PDF format is distributed using the Apache license 2.0. You may obtain a copy of the License at:

http://www.apache.org/licenses/LICENSE-2.0.html

Footnotes

  1. This option refers to the compiler resolving dependency. ↩

  2. The compiler starts on each source file. Very slow. ↩

fidocadj's People

Contributors

chayward avatar chemik582 avatar crud3 avatar cssho avatar dantecpp avatar darwinne avatar ekardnam avatar enpa avatar erichvk5 avatar geogeo-gr avatar ingframin avatar ioampatzidis avatar joopn avatar langestefan avatar ludwich66 avatar manufino avatar marclr avatar max2433bo avatar nivit avatar simo-zz avatar simon-zz avatar stemby 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

fidocadj's Issues

Header ad Footer are needed

For the sake of formality, content that is reapeated on all pages must be in the Header, Navigation (sidebar menu that we don't need) and Footer section. I suppose we need to move the "titlepage" in an Header and "license" in a Footer.

Appearance of links in the question list of the FAQ pages

Hi,
the style of the links in the list of the questions treated in http://fidocadj.sourceforge.net/faq.html is not the same as the links appearing elsewhere. In fact, they are underlined, whereas elsewhere they appear orange or green depending wether they have been clicked or not.

I also noticed that there is a margin problem when viewing that list on my cellular phone (Chrome browser). The bullets are very close to the vertical orange line. I do not have the same effect when viewing the page with my laptop (Safari browser).

I will include a screenshot.

D.

More examples

Can I suggest to add more examples in the examples page to show the FidoCadJ power better?

Confusing report when the name of an exported image contains not admitted

If you wrongly try to use a character that isn't admitted in the name of file when you are exporting an image
firstly you can insert it without receive any warning (i inserted ")
but when you confirm the export you receive this confusing error

Errore durante l'esportazione: java.io.IOException:Size.errorjava.lang.NullPointerException

K

Update the French user manual

Hi to all,
the French version of the user manual should be updated, since it is way beyond the manual in English.
One should compare via Git the current English manual with the version which was available the last time the French manual has been updated. The differences should be implemented in the French manual. A global reread should be a good idea, afterwards.

Color error in EPS format.

Exporting in EPS format the attached file, colors are different from the original fcd file. Problem seems to be related to the line order of fidocad source.

[FIDOCAD]
FJC B 0.5
LI 10 111 113 111 0
FCJ 2 0 3 2 0 0
LI 54 121 54 26 0
FCJ 2 0 3 2 0 0
TY 113 114 4 3 0 0 0 Arial VD
TY 44 29 4 3 0 0 0 Arial ID
LI 60 111 94 65 1
TY 56 113 4 3 0 0 1 Arial Vg2
TY 69 103 4 3 0 0 1 Arial gd2
BE 68 111 68 108 67 106 65 105 1
TY 75 112 4 3 0 0 2 Arial Vg1
TY 86 103 4 3 0 0 2 Arial gd1
TY 107 104 4 3 0 0 2 Arial 
BE 84 111 84 108 83 106 80 105 2
LI 98 26 78 111 2
CV 0 11 117 22 117 35 116 55 111 71 97 83 79 92 55 96 23 4

Print horizontal

Ver. 0.24.5 alpha
The horizontal printing setting does not work: the output is always vertically oriented.

Improve the Javadoc quality

The quality of the Javadoc comments in the source code may be improved by checking the grammar, the completeness and by suggesting if there are obscure points.
The links provided should be improved and validated, as well as the global stylistic coherence and so on.

More user friendly content on the website

I think we will need a user friendly quick start guide to deal with Java version problems and so on. I'm talking about folks that ask for help in the forums couse they can't make FidoCadJ work easily.

Independent distro installer script

When i run the script I get

dante@dante-laptop:~/Documenti/varie$ sudo ./fidocadj_installer.sh --install

   Welcome to the fidocadj_installer script

   Cannot reach the SourceForge server!
Abort... 

dante@dante-laptop:~/Documenti/varie$

it is because the installer still tests the sourgeforce server

## connection availability test
ping -c1 download.sourceforge.net > /dev/null
if [ $? -ne 0 -a $1 != "--uninstall" ]
then
    echo " "
    echo "   Cannot reach the SourceForge server!"
    echo "Abort... "
    echo " "
    exit 3
fi

without this test, the script would try to download the fidocadj.jar file by the following command

 wget -q -O /usr/share/java/fidocadj/temp.jar http://download.sourceforge.net/fidocadj/files/fidocadj.jar

I will fix that, but i need the new fidocadj.jar download link.

Cheers Dante.

Put online the generated HTML files from Javadoc?

The FidoCadJ source code is commented and the Javadoc system is employed quite extensively through the code. It provides a low-level description of the source code.
The generated HTML is NOT currently part of the source code repository (and it should NOT become part).

Would it be possible (and is it a good idea) to make it becomes on a specific part of the website?

example_primitive_line_javadoc

Multi language website for FidoCadJ

We need to add multi language support for the website. That's my plan to do it:

I'm going to transform the current web site (in html) in a PHP web site.

PHP web sites don't run on GitHub, but in the future who knows... for now we use it to generate the html code.

With a multi language web site made in PHP we will have a common file for the template, and many content file per page as many language we will use. Technically speaking, we separate the content from the viewer.

So, all we have to do, is run the PHP site on a local server, for every chang on web site (that aren't so frequently) copy and paste the html source code in the GitHub directory.

I'll try to make an example on a piece of html code from page index.html

Now the title of the page is defined by this code:
<title>FidoCadJ Free Graphical Editor for Electronics and more</title>

In the PHP version there'll be an include about a language file(for example italian):
include("languages/italian/index.php");
that contain the languages definition, the title will change in:
<title><?php echo $TITLE; ?></title>

If you will look at the output/source code of the new index.php, will see only the result:
<title>FidoCadJ Software gratuito per il disegno di circuiti elettronici e altro</title>

So will have a new structure for the other (not english) languages:
Italian -> http://darwinne.github.io/FidoCadJ/italian/index.html
Spanish -> http://darwinne.github.io/FidoCadJ/spanish/index.html
Klingon -> http://darwinne.github.io/FidoCadJ/klingon/index.html

and so on...

Of course, I will tell Google wich languages we ar going to serve and I'll make some beautiful flags for the user to choose the language he prefers.

I will translate the website in italian and I'll make a little guide for new translators about how to edit the language file.

Hope I've been clear enough.

Cheers!

Download button in the pages

Probably, we can complement the download page of the website:

with a download button in the homepage. It should recognize which may be the most appropriate version of the program it can be downloaded. I.e. the dmg file for MacOSX, the Windows installer for Windows and so on.

In the past, I wrote something similar in Javascript:

<script language="JavaScript1.2" type="text/javascript">
function selectDownload() 
{
    if (navigator.appVersion.indexOf("Mac")!=-1) {
        document.write("<a href='https://sourceforge.net/projects/fidocadj/files/FidoCadJ_MacOSX.dmg/download'><img src='elettronica/fidocadj/icona_download_macosx.png' alt='FidoCadJ icon'><\/a>");
    } else if(navigator.appVersion.indexOf("Win")!=-1) {
        document.write("<a href='http://sourceforge.net/projects/fidocadj/files/FidoCadJ_Windows.msi/download'><img src='elettronica/fidocadj/icona_download_win_installer.png' alt='FidoCadJ icon'><\/a>");
    } else {
        document.write("<a href='https://sourceforge.net/projects/fidocadj/files/fidocadj.jar/download'><img src='elettronica/fidocadj/icona_download_win_linux.png' alt='FidoCadJ icon'><\/a>");
    }
}
</script>

The links are quite old, they must be updated to those here on GitHub.

I hope it is useful.

Cheers,

D.

Here are the icons I used at the time (but they are not beautiful). Probably it is better to use only one icon and adapt the text.
icona_download_macosx
icona_download_win_installer
icona_download_win_linux

Update the Italian user manual

Hi to all,
the Italian version of the user manual should be updated, since it is way beyond the manual in English.
One should compare via Git the current English manual with the version which was available the last time the Italian manual has been updated. The differences should be implemented in the Italian manual. A global reread should be a good idea, then.

Unix permissions

Unix permissions for all files should be checked and made uniform.

Help for Android development

Hi,
FidoCadJ on Android works quite well, but still requires to be fine-tuned.
Some dialogs can be improved.
If you want to participate to the FidoCadJ development and have experience with Android applications, your contribution may be precious.

Cheers,
D.

Line breaks

This issue is similar to #51.

I think line breaks (newlines) should follow the Unix standard: only the Line Feed (LF) character, instead of the combination of Carriage Return (CR) + LF used by some limited OSes.

The only exception might be winbuild.bat (to be verified).

Fixing this issue is very simple (see the dos2unix command line software) but, as in #51, probably it would be a good idea to add a test for consistency.

Help needed for updating Linux install instructions

Hi,
I need some help to upgrade the Linux install instructions on the English user manual.
They were written by Roby IZ1CYN and are contained in appendix A.2.
Minimum version is Java 7 now and the download locations to be given to wget should be updated to GitHub.
I can modify the document by myself, but I need someone using Linux to check everything.

Cheers,

D.

Spanish translation needed for UI

Dear all,
I just added some resources, due to new interface elements (printing margins).
Is someone willing to translate them in Spanish, please?

Cheers,

D.

Compatibility mode with FidoCAD

Hi
When I'm going to draw the curve button is freezes and not selectable, even once draw a line will not let me choose if I want an arrow.

Inconsistent paths

I think src/net/sourceforge/* should be replaced by shorter and/or more logical paths.

"Abandoned" code

Please, could you put "abandoned" code (like jar/Manifest_applet.txt and jar/*.html) in a dedicated directory?

After that, I think README.md should be updated:

| `jar/`               |  X  | Contains `fidocadj.jar` as well as Quaqua       |

↓

| `jar/`               |  X  | Directory where to put JAR and manifest files   |

or similar.

Thank you very much!

subscripts

They would be really usefull, expecially to differenciate resistors and capacitors (and so on).

Describe how to include FidoCadJ drawings in LaTeX docs

FidoCadJ can export drawings as pgf/TikZ drawings which can be included in LaTeX documents.
Apparently, this is not very well known and it is not used by many people, even if it is a quite powerful and very handy technique.

Can someone write a Howto, for example adding a page to the Wiki here on GitHub to describe how it can be done?

Cheers,

D.

German translation needed for UI

Dear all,
I just added some resources, due to new interface elements (printing margins).
Is someone willing to translate them in German, please?

Cheers,

D.

Update winbuild.bat

The Windows batch script for compiling and executing FidoCadJ is now obsolete.
Can someone correct it, by taking for comparison the Unix scripts?

Problematic code with wrong layer number

This code is parsed, but the presence of an incorrect layer number yields problems when other elements are present in the drawing.

[FIDOCAD]
FJC B 0.5
LI 50 20 55 20 55

The program should eliminate or correct such a layer number.

Printing margins

Printing from FidoCadJ leaves some large margins sometimes.
Part of the problem is due to the fact that, when "Fit to the page" option is checked, the size calculation includes the (0,0) point, even if the drawing does not include it.

This problem has been described in this forum discussion: http://www.electroyou.it/forum/viewtopic.php?f=16&t=60593
Here is a printout where the green rectangle indicates the printable area. The drawing does not touch the green line on the top and on the left.

fidocadj_printing_size

Higher quality vector version: fidocadj_printing_size.pdf

Czech translation needed for UI

Dear all,
I just added some resources, due to new interface elements (printing margins).
Is someone willing to translate them in Czech, please?

Cheers,

D.

Correct warnings issued by Java 1.7

Hi,
during the compilation of Java sources, some warnings are issued.
They are mainly due to the older code (Java <1.5) using unchecked casts:

$ ./rebuild 
MacOSX detected: activated AppleSpecific classes.
src/net/sourceforge/fidocadj/macropicker/model/MacroTreeModel.java:124: warning: [unchecked] unchecked conversion
        libraryNodeMap = new HashMap();
                         ^
  required: HashMap<TreePath,AbstractMacroTreeNode>
  found:    HashMap
src/net/sourceforge/fidocadj/macropicker/model/MacroTreeModel.java:462: warning: [unchecked] unchecked cast
               (HashMap<TreePath,AbstractMacroTreeNode>)libraryNodeMap.clone();
                                                                            ^
  required: HashMap<TreePath,AbstractMacroTreeNode>
  found:    Object
src/net/sourceforge/fidocadj/macropicker/model/AbstractMacroTreeNode.java:118: warning: [unchecked] unchecked conversion
        Collections.sort(childNodes);
                         ^
  required: List<T>
  found:    Vector
  where T is a type-variable:
    T extends Comparable<? super T> declared in method <T>sort(List<T>)
src/net/sourceforge/fidocadj/macropicker/model/AbstractMacroTreeNode.java:118: warning: [unchecked] unchecked method invocation: method sort in class Collections is applied to given types
        Collections.sort(childNodes);
                        ^
  required: List<T>
  found: Vector
  where T is a type-variable:
    T extends Comparable<? super T> declared in method <T>sort(List<T>)
src/net/sourceforge/fidocadj/macropicker/model/MacroTreeModel.java:554: warning: [unchecked] unchecked call to add(E) as a member of the raw type Vector
            childNodes.add(node);
                          ^
  where E is a type-variable:
    E extends Object declared in class Vector
src/net/sourceforge/fidocadj/macropicker/model/MacroTreeModel.java:586: warning: [unchecked] unchecked call to add(E) as a member of the raw type Vector
            childNodes.add(node);
                          ^
  where E is a type-variable:
    E extends Object declared in class Vector
src/net/sourceforge/fidocadj/macropicker/model/MacroTreeModel.java:636: warning: [unchecked] unchecked call to add(E) as a member of the raw type Vector
            childNodes.add(node);
                          ^
  where E is a type-variable:
    E extends Object declared in class Vector
src/net/sourceforge/fidocadj/toolbars/ToolbarZoom.java:217: warning: [unchecked] unchecked cast
        JComboBox<String> source=(JComboBox<String>)evt.getSource();
                                                                 ^
  required: JComboBox<String>
  found:    Object
src/net/sourceforge/fidocadj/dialogs/DialogExport.java:537: warning: [unchecked] unchecked cast
            (JComboBox<String>)(evt.getSource());
                               ^
  required: JComboBox<String>
  found:    Object
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
9 warnings

We can of course suppress those warnings (the code has been long tested), but I would prefer to issue a more elegant solution.

Any suggestions?

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.