From: "Roger C. Soares" <rogersoares@intelinet.com.br>
To: "Shawn O. Pearce" <spearce@spearce.org>
Cc: git@vger.kernel.org, robin.rosenberg@dewire.com
Subject: Re: [EGIT PATCH 2/4] FindToolbar port to the new history page.
Date: Tue, 01 Apr 2008 00:44:06 -0300 [thread overview]
Message-ID: <47F1AF86.3030503@intelinet.com.br> (raw)
In-Reply-To: <20080331061914.GK10274@spearce.org>
Shawn O. Pearce escreveu:
> Hmm. So what functionality did the highlight flag + RevFilter
> not get you? It supports both regex as well as non-regex matches,
> is quick, and can be joined together with other filters. A lot of
> the code in the FindToolbarThread should drop out.
>
Ok, so, my motivation first. I don't have too much time to work on egit
but I'm interested in using your work in my build. So, I'm pushing the
features I need. This patch was intended as a simple port of the
existing FindToolbar to the new history page so I can use it.
I tried the applyFlags you described but it doesn't have a monitor
approach to give feedback to the toolbar so it knows when to refresh the
table and to select the first match, or to go red when nothing was
found. I also couldn't find from the highlight flag + RevFilter solution
how to get the total rows encountered and the index of a match so the
toolbar can show that the selected match is number 2 from 10.
So, this patch was intented as a port. I'm not sure everything related
to search should go inside jgit, but I agree that RevFilters should be
reused. I was thinking about it as an improvement after the port, it's
not my priority right now but someone else can do it? ;)
> This field isn't necessary. "table.getTable()" will get you the
> same widget.
>
Ok.
> So this is doing basically the same thing as the highlight RevFlag
> (give a boolean about match status for a given RevCommit) but needs
> to consult a HashMap by creating a temporary boxed Integer, and this
> is deep down inside of the painting code for the table. Urrgh.
>
The map is used to give the x from total information. When using a
VIRTUAL table it doesn't have a noticable performance impact because
only a small set is required at a time.
Robin sent a patch some time ago to change those new Integer() to
Integer.valueOf(), I guess he didn't push it yet.
> These strings should be in UIText, and UIText.properties, so they
> can be translated strings.
>
Ok.
> Would it make sense to abstract out and reuse the BooleanPrefAction
> class I added to GitHistoryPage in ea3f1e7a7684b8?
>
Probably, I'll get a look on it.
> Shouldn't this maybe be a Job instead, and scheduled on the History
> site so the History title bar goes italics and the user can see
> the progress meter in the status bar of the workspace and in their
> Progress view?
>
Maybe. When I wrote this I wasn't aware about the existence of the Job
interface. Then when I met it I thought about replacing it, but havent't
done it yet.
> I'm not an SWT expert, but I think hanging onto a Display reference
> from a class static isn't a good idea.
>
You're right.
> Shouldn't this be a volatile, or an AtomicInteger, or protected by
> a synchronized block?
>
Yep.
> Wow. That's black magic. You are blocking the threads from
> doing multiple searches at once by synchonizing on the static
> method, but since you are in an instance method you had to pass
> everything through as arguments. :-|
>
> It would be a lot easier to follow if this was an instance member,
> and thus had access to the instance fields, and if you used an
> explicit lock, e.g.:
>
> private static final Object EXEC_LOCK = new Object();
>
> public void run() {
> synchronized (EXEC_LOCK) {
> execFind();
> }
> }
>
> private void execFind() { ... }
>
Yep, looks better.
[]s,
Roger.
next prev parent reply other threads:[~2008-04-01 3:48 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-30 15:18 [EGIT PATCH 2/4] FindToolbar port to the new history page Roger C. Soares
2008-03-31 6:19 ` Shawn O. Pearce
2008-04-01 3:44 ` Roger C. Soares [this message]
2008-04-01 4:02 ` Shawn O. Pearce
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47F1AF86.3030503@intelinet.com.br \
--to=rogersoares@intelinet.com.br \
--cc=git@vger.kernel.org \
--cc=robin.rosenberg@dewire.com \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox