This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 63085 - help IDs for project nodes needed
Summary: help IDs for project nodes needed
Status: VERIFIED FIXED
Alias: None
Product: projects
Classification: Unclassified
Component: Generic Infrastructure (show other bugs)
Version: 5.x
Hardware: All All
: P2 blocker (vote)
Assignee: Jan Lahoda
URL:
Keywords: API, API_REVIEW_FAST
Depends on:
Blocks: 63086 63089
  Show dependency tree
 
Reported: 2005-08-25 17:43 UTC by Patrick Keegan
Modified: 2006-08-14 20:18 UTC (History)
3 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Preliminary patch. (8.77 KB, patch)
2006-03-03 16:36 UTC, Jan Lahoda
Details | Diff
updated patch against release55 branch (9.96 KB, text/plain)
2006-07-26 10:31 UTC, Milan Kubec
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Keegan 2005-08-25 17:43:10 UTC
Please enter a help ID for the root nodes for standard J2SE projects and
free-form J2SE projects.

You can use the class name for the dialog box as the help ID.
Comment 1 Patrick Keegan 2005-08-25 17:53:51 UTC
BTW, to clarify, there should be separate IDs for standard and free-form nodes.
Comment 2 Andrei Badea 2005-10-26 15:54:28 UTC
Honzo, I have a similar issue for the EJB and EJB free-form projects. The
free-form project concerns me, since Patrick's request is to have different help
IDs for "different" free-form projects. How can we do this, since there's only
one free-form project really? Delegating to the natures might not be trivial,
since there can be more natures in a project (Java & web, Java & EJB), so how to
decide which one wins?
Comment 3 Jan Lahoda 2005-10-26 16:45:01 UTC
Proposed solution based on our offline chat:
1. The ant/freeform will define an interface like:
interface HelpIDFragmentProvider {
    String getHelpIDFragment();
}
which will be implemented by each nature and put into the nature's lookup.
2. The help id for the freeform will be computed as follows:
-get all help ID fragments from the lookup
-sort them lexicographically (so the order is stable)
-construct the help id aas a concatenation of these sorted fragments, separated
by '.', prefixed with some prefix.

So, for example, the root node of the Java freeform project would have help id
like "freeform.node.java", web freeform would have help id like
"freeform.node.java.web", EJB freeform would have something like
"freeform.node.ejb.java", etc. ("freeform.node" is the prefix, we can choose
anything for it).

Patrik, will this work for you?

Provided there are no objections, I will implement this and send it to the API
review.
Comment 4 Patrick Keegan 2005-10-26 17:40:45 UTC
sounds ok to me
Comment 5 Jesse Glick 2005-10-26 19:36:46 UTC
This needs API review since the ant/freeform packages are public.
Comment 6 Jan Lahoda 2005-10-26 20:40:51 UTC
BTW: AFAIK the ant/freeform's Java SPI is a friend SPI, should I change the
project.xml to enforce it? (List all the friends I know about?) Probably a
different fast track.
Comment 7 Jesse Glick 2005-10-26 21:59:36 UTC
java/freeform already publishes only a friend SPI. However ant/freeform
publishes a public SPI and it is too late to change this compatibly (as it was
there in 4.1). It must be maintained compatibly.
Comment 8 Andrei Badea 2005-10-27 10:18:35 UTC
Should maybe be HelpCtxFragmentProvider instead of HelpIDFragmentProvider, since
the fragment is really used to build a HelpCtx.
Comment 9 Jan Lahoda 2006-03-03 16:36:32 UTC
Created attachment 29109 [details]
Preliminary patch.
Comment 10 Milan Kubec 2006-07-19 09:55:12 UTC
Honzo, are you going to commit the patch?
Comment 11 Milan Kubec 2006-07-25 14:50:57 UTC
This issue blocks two issues against 5.5. Is this issue considered as reviewed?
Can I proceed with integration to release55 branch?
Comment 12 Milan Kubec 2006-07-26 10:31:28 UTC
Created attachment 32216 [details]
updated patch against release55 branch
Comment 13 Marian Mirilovic 2006-07-26 22:14:51 UTC
Milan,

if you want to fix this into NB 5.5 :
- add status whiteboard "5.5_candidate"
- rise priority
- ask on reviewers mailing list
- ......

BTW: both blocked issues are P3, no stopper

Patrick,
do you want to fix this for NB 5.5 ?
Comment 14 Milan Kubec 2006-07-27 07:54:51 UTC
Status WB added, I've already sent message to reviewers yesterday. And you are
right that Patrick should have final word, if there is no content ready for 5.5
to utilize those HelpIDs there is no point to put it into release55 branch. Patrick?
Comment 15 Jaroslav Tulach 2006-07-27 14:23:56 UTC
I guess the change is missing @since tag on the class and change to 
apichanges.xml and increment of module spec. version.
Comment 16 Patrick Keegan 2006-08-09 14:44:31 UTC
Milan, please go ahead and integrate the change if you can (and provide us with
the help IDs that are created).
Comment 17 Milan Kubec 2006-08-10 14:20:33 UTC
I will integrate the fix tomorrow to trunk and to release55 branch. Raising prio
since it prevents Docs teams from integrating help documents to IDE.
Comment 18 Milan Kubec 2006-08-11 13:23:35 UTC
Done. Added SPI class HelpIDFragmentProvider that allows to provide freeform
project type specific HelpIDs.

Trunk version:
Checking in apichanges.xml;
/cvs/ant/freeform/apichanges.xml,v  <--  apichanges.xml
new revision: 1.4; previous revision: 1.3
done
Checking in manifest.mf;
/cvs/ant/freeform/manifest.mf,v  <--  manifest.mf
new revision: 1.14; previous revision: 1.13
done
Checking in src/org/netbeans/modules/ant/freeform/Util.java;
/cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/Util.java,v  <--  Util.java
new revision: 1.13; previous revision: 1.12
done
Checking in src/org/netbeans/modules/ant/freeform/ui/View.java;
/cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/ui/View.java,v  <-- 
View.java
new revision: 1.23; previous revision: 1.22
done
Checking in src/org/netbeans/modules/ant/freeform/ui/ProjectCustomizer.java;
/cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/ui/ProjectCustomizer.java,v
 <--  ProjectCustomizer.java
new revision: 1.24; previous revision: 1.23
done
RCS file:
/cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/spi/HelpIDFragmentProvider.java,v
done
Checking in src/org/netbeans/modules/ant/freeform/spi/HelpIDFragmentProvider.java;
/cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/spi/HelpIDFragmentProvider.java,v
 <--  HelpIDFragmentProvider.java
initial revision: 1.1
done

Added HelpIDFragmentProviderImpl to all project natures.

Checking in
j2ee/ejbfreeform/src/org/netbeans/modules/j2ee/ejbfreeform/EJBProjectNature.java;
/cvs/j2ee/ejbfreeform/src/org/netbeans/modules/j2ee/ejbfreeform/EJBProjectNature.java,v
 <--  EJBProjectNature.java
new revision: 1.20; previous revision: 1.19
done
Checking in
java/freeform/src/org/netbeans/modules/java/freeform/JavaProjectNature.java;
/cvs/java/freeform/src/org/netbeans/modules/java/freeform/JavaProjectNature.java,v
 <--  JavaProjectNature.java
new revision: 1.12; previous revision: 1.11
done
Checking in
web/freeform/src/org/netbeans/modules/web/freeform/WebProjectNature.java;
/cvs/web/freeform/src/org/netbeans/modules/web/freeform/WebProjectNature.java,v
 <--  WebProjectNature.java
new revision: 1.14; previous revision: 1.13
done
Comment 19 Milan Kubec 2006-08-11 13:43:06 UTC
release55 version:

Checking in src/org/netbeans/modules/ant/freeform/ui/View.java;
/cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/ui/View.java,v  <-- 
View.java
new revision: 1.14.12.2.2.2; previous revision: 1.14.12.2.2.1
done
Checking in src/org/netbeans/modules/ant/freeform/ui/ProjectCustomizer.java;
/cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/ui/ProjectCustomizer.java,v
 <--  ProjectCustomizer.java
new revision: 1.19.58.2; previous revision: 1.19.58.1
done
Checking in manifest.mf;
/cvs/ant/freeform/manifest.mf,v  <--  manifest.mf
new revision: 1.8.12.2.2.3; previous revision: 1.8.12.2.2.2
done
Checking in apichanges.xml;
/cvs/ant/freeform/apichanges.xml,v  <--  apichanges.xml
new revision: 1.2.4.1.2.2; previous revision: 1.2.4.1.2.1
done
Checking in src/org/netbeans/modules/ant/freeform/spi/HelpIDFragmentProvider.java;
/cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/spi/HelpIDFragmentProvider.java,v
 <--  HelpIDFragmentProvider.java
new revision: 1.1.2.1; previous revision: 1.1
done
Checking in src/org/netbeans/modules/ant/freeform/Util.java;
/cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/Util.java,v  <--  Util.java
new revision: 1.10.64.2; previous revision: 1.10.64.1
done

Checking in
web/freeform/src/org/netbeans/modules/web/freeform/WebProjectNature.java;
/cvs/web/freeform/src/org/netbeans/modules/web/freeform/WebProjectNature.java,v
 <--  WebProjectNature.java
new revision: 1.11.22.1.2.4; previous revision: 1.11.22.1.2.3
done
Checking in
java/freeform/src/org/netbeans/modules/java/freeform/JavaProjectNature.java;
/cvs/java/freeform/src/org/netbeans/modules/java/freeform/JavaProjectNature.java,v
 <--  JavaProjectNature.java
new revision: 1.9.12.1.2.2; previous revision: 1.9.12.1.2.1
done
Checking in
j2ee/ejbfreeform/src/org/netbeans/modules/j2ee/ejbfreeform/EJBProjectNature.java;
/cvs/j2ee/ejbfreeform/src/org/netbeans/modules/j2ee/ejbfreeform/EJBProjectNature.java,v
 <--  EJBProjectNature.java
new revision: 1.15.2.3.2.9; previous revision: 1.15.2.3.2.8
done
Comment 20 Milan Kubec 2006-08-11 14:31:58 UTC
Final part, HelpCtx added to regular project root nodes:

Trunk version:

Checking in
java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java;
/cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java,v
 <--  J2SELogicalViewProvider.java
new revision: 1.19; previous revision: 1.18
done
Checking in
web/project/src/org/netbeans/modules/web/project/ui/WebPhysicalViewProvider.java;
/cvs/web/project/src/org/netbeans/modules/web/project/ui/WebPhysicalViewProvider.java,v
 <--  WebPhysicalViewProvider.java
new revision: 1.39; previous revision: 1.38
done
Checking in
j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/J2eeArchiveLogicalViewProvider.java;
/cvs/j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/J2eeArchiveLogicalViewProvider.java,v
 <--  J2eeArchiveLogicalViewProvider.java
new revision: 1.14; previous revision: 1.13
done
Checking in
j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/EjbJarLogicalViewProvider.java;
/cvs/j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/EjbJarLogicalViewProvider.java,v
 <--  EjbJarLogicalViewProvider.java
new revision: 1.21; previous revision: 1.20
done

release55 version:

Checking in
j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/EjbJarLogicalViewProvider.java;
/cvs/j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/EjbJarLogicalViewProvider.java,v
 <--  EjbJarLogicalViewProvider.java
new revision: 1.16.2.2.2.6; previous revision: 1.16.2.2.2.5
done
Checking in
java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java;
/cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java,v
 <--  J2SELogicalViewProvider.java
new revision: 1.4.2.5.2.4; previous revision: 1.4.2.5.2.3
done
Checking in
j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/J2eeArchiveLogicalViewProvider.java;
/cvs/j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/J2eeArchiveLogicalViewProvider.java,v
 <--  J2eeArchiveLogicalViewProvider.java
new revision: 1.7.2.2.2.11; previous revision: 1.7.2.2.2.10
done
Checking in
web/project/src/org/netbeans/modules/web/project/ui/WebPhysicalViewProvider.java;
/cvs/web/project/src/org/netbeans/modules/web/project/ui/WebPhysicalViewProvider.java,v
 <--  WebPhysicalViewProvider.java
new revision: 1.35.4.1.2.5; previous revision: 1.35.4.1.2.4
done
Comment 21 Milan Kubec 2006-08-11 14:44:32 UTC
HelpIDs:

Web freeform project node:
"freeform.node.java.web"

EJB freeform project node:
"freeform.node.ejb.java"

Java freeform project node:
"freeform.node.java"

Web project node:
"org.netbeans.modules.web.project.ui.WebPhysicalViewProvider$WebLogicalViewRootNode"

EJB project node:
"org.netbeans.modules.j2ee.ejbjarproject.ui.EjbJarLogicalViewProvider$WebLogicalViewRootNode"

EAR project node:
"org.netbeans.modules.j2ee.earproject.ui.J2eeArchiveLogicalViewProvider$ArchiveLogicalViewRootNode"

J2SE Project node:
"org.netbeans.modules.java.j2seproject.ui.J2SELogicalViewProvider$J2SELogicalViewRootNode"
Comment 22 Patrick Keegan 2006-08-14 20:18:31 UTC
verified in the release55 branch